Appearance
⏰ Time(时间管理)模块 · 开发者指南
🧠 模块介绍
Time(时间管理)模块,用于系统时间、日期、时区的设置与查询,支持NTP自动对时、时区自动切换、时间格式配置等功能。
🛠️ PanelSDK 初始化
java
// 推荐在 Application 或 Activity 中初始化,确保全局唯一
PanelSDK panelSDK = new PanelSDK(this);🧩 核心方法 · 专业解读
🌐 switchAutoDateAndTime — 开关网络自动对时
java
int switchAutoDateAndTime(boolean enable)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| enable | boolean | true 开启,false 关闭 |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 成功 |
| -1 | 失败 |
典型场景代码
java
// 开启网络自动对时功能
int result = panelSDK.switchAutoDateAndTime(true);
if (result == 0) {
// ✅ 开启成功,系统将自动从网络同步时间
Log.d("Time", "网络自动对时已开启");
} else {
// ❌ 开启失败
Log.e("Time", "开启失败,错误码: " + result);
}🌍 switchAutoTimeZone — 开关网络自动时区
java
int switchAutoTimeZone(boolean enable)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| enable | boolean | true 开启,false 关闭 |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 成功 |
| -1 | 失败 |
典型场景代码
java
// 开启网络自动时区功能
int result = panelSDK.switchAutoTimeZone(true);
if (result == 0) {
// ✅ 开启成功,系统将自动从网络同步时区
Log.d("Time", "网络自动时区已开启");
} else {
// ❌ 开启失败
Log.e("Time", "开启失败,错误码: " + result);
}🕐 setTimeFormat — 设置时间格式
java
int setTimeFormat(int timeFormat)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| timeFormat | int | 0:24小时,1:12小时 |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 成功 |
| -1 | 失败 |
典型场景代码
java
// 设置为24小时制
int result = panelSDK.setTimeFormat(0);
if (result == 0) {
// ✅ 设置成功
Log.d("Time", "时间格式已设置为24小时制");
} else {
// ❌ 设置失败
Log.e("Time", "设置失败,错误码: " + result);
}⏱️ setTime — 设置时间
java
int setTime(int hourOfDay, int minute, int second, int millisecond)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| hourOfDay | int | 小时 (0-23) |
| minute | int | 分钟 (0-59) |
| second | int | 秒 (0-59) |
| millisecond | int | 毫秒 (0-999) |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 成功 |
| -1 | 失败 |
典型场景代码
java
// 设置时间为 14:30:00.000
int result = panelSDK.setTime(14, 30, 0, 0);
if (result == 0) {
// ✅ 设置成功
Log.d("Time", "时间已设置为 14:30:00");
} else {
// ❌ 设置失败
Log.e("Time", "设置失败,错误码: " + result);
}📅 setDate — 设置日期
java
int setDate(int year, int month, int day)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| year | int | 年 (2000-2099) |
| month | int | 月 (1-12) |
| day | int | 日 (1-31) |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 成功 |
| -1 | 失败 |
典型场景代码
java
// 设置日期为 2025年11月17日
int result = panelSDK.setDate(2025, 11, 17);
if (result == 0) {
// ✅ 设置成功
Log.d("Time", "日期已设置为 2025-11-17");
} else {
// ❌ 设置失败
Log.e("Time", "设置失败,错误码: " + result);
}🌏 setTimeZone — 设置时区
java
int setTimeZone(String timeZone)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| timeZone | String | 时区字符串,如 "Asia/Shanghai" |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 成功 |
| -1 | 失败 |
典型场景代码
java
// 设置时区为上海(东八区)
int result = panelSDK.setTimeZone("Asia/Shanghai");
if (result == 0) {
// ✅ 设置成功
Log.d("Time", "时区已设置为 Asia/Shanghai");
} else {
// ❌ 设置失败
Log.e("Time", "设置失败,错误码: " + result);
}🟢 isAutoDateAndTime — 查询网络自动对时状态
java
boolean isAutoDateAndTime()返回值说明
| 返回值 | 说明 |
|---|---|
| true/false | true 开启,false 关闭 |
典型场景代码
java
// 查询网络自动对时功能状态
boolean isAuto = panelSDK.isAutoDateAndTime();
if (isAuto) {
// ✅ 自动对时已开启
Log.d("Time", "网络自动对时已开启");
} else {
// ⚠️ 自动对时未开启
Log.w("Time", "网络自动对时未开启");
}🟢 isAutoTimeZone — 查询网络自动时区状态
java
boolean isAutoTimeZone()返回值说明
| 返回值 | 说明 |
|---|---|
| true/false | true 开启,false 关闭 |
典型场景代码
java
// 查询网络自动时区功能状态
boolean isAuto = panelSDK.isAutoTimeZone();
if (isAuto) {
// ✅ 自动时区已开启
Log.d("Time", "网络自动时区已开启");
} else {
// ⚠️ 自动时区未开启
Log.w("Time", "网络自动时区未开启");
}🕐 getCurrentTimeFormat — 获取当前时间格式
java
int getCurrentTimeFormat()返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 24小时格式 |
| 1 | 12小时格式 |
典型场景代码
java
// 获取当前时间格式
int format = panelSDK.getCurrentTimeFormat();
if (format == 0) {
// ✅ 24小时格式
Log.d("Time", "当前使用24小时制");
} else if (format == 1) {
// ✅ 12小时格式
Log.d("Time", "当前使用12小时制");
} else {
// ❌ 获取失败
Log.e("Time", "获取失败,错误码: " + format);
}🌐 getNtpServerAddressInUse — 获取当前NTP服务器地址
java
String getNtpServerAddressInUse()返回值说明
| 返回值 | 说明 |
|---|---|
| String | NTP服务器地址字符串 |
典型场景代码
java
// 获取当前使用的NTP服务器地址
String ntpServer = panelSDK.getNtpServerAddressInUse();
if (ntpServer != null && !ntpServer.isEmpty()) {
// ✅ 获取成功
Log.d("Time", "当前NTP服务器: " + ntpServer);
} else {
// ⚠️ 无NTP服务器或获取失败
Log.w("Time", "未设置NTP服务器");
}✅ checkNtpServerAddressAvailable — 检查NTP服务器是否可用
java
boolean checkNtpServerAddressAvailable(String ntpServerAddress, long timeOut)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| ntpServerAddress | String | NTP服务器地址,如 "ntp.aliyun.com" |
| timeOut | long | 超时时间(毫秒) |
返回值说明
| 返回值 | 说明 |
|---|---|
| true/false | true 可用,false 不可用 |
典型场景代码
java
// 检查NTP服务器是否可用 注意需在非UI线程中使用
boolean isAvailable = panelSDK.checkNtpServerAddressAvailable("ntp.aliyun.com", 10000);
if (isAvailable) {
// ✅ NTP服务器可用
Log.d("Time", "NTP服务器 ntp.aliyun.com 可用");
} else {
// ❌ NTP服务器不可用
Log.e("Time", "NTP服务器 ntp.aliyun.com 不可用");
}⏱️ getNtpTimeout — 获取NTP超时时间
java
long getNtpTimeout()返回值说明
| 返回值 | 说明 |
|---|---|
| long | 超时时间(毫秒) |
典型场景代码
java
// 获取当前NTP超时时间
long timeout = panelSDK.getNtpTimeout();
if (timeout > 0) {
// ✅ 获取成功
Log.d("Time", "当前NTP超时时间: " + timeout + " 毫秒");
} else {
// ⚠️ 获取失败或未设置
Log.w("Time", "获取NTP超时时间失败");
}🌐 setNtpServerAddress — 设置NTP服务器地址
java
int setNtpServerAddress(String ntpServerAddress, long timeOut)参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| ntpServerAddress | String | NTP服务器地址,如 "ntp.aliyun.com" |
| timeOut | long | 超时时间(毫秒) |
返回值说明
| 返回值 | 说明 |
|---|---|
| 0 | 成功 |
| -1 | 失败 |
典型场景代码
java
// 设置NTP服务器为阿里云,超时时间10秒
int result = panelSDK.setNtpServerAddress("ntp.aliyun.com", 10000);
if (result == 0) {
// ✅ 设置成功
Log.d("Time", "NTP服务器已设置为 ntp.aliyun.com");
} else {
// ❌ 设置失败
Log.e("Time", "设置失败,错误码: " + result);
}⚡ 专业进阶 · 技术要点
所有方法均为同步调用,返回值可直接判断结果,适合批量自动化脚本。 推荐在具备系统权限的环境下调用,部分功能需 Root 或系统签名。 依赖底层
StTimeManager,请确保相关依赖已集成并兼容目标设备。 支持企业级批量时间策略下发、NTP服务器配置、时区自动切换。
🏆 专业总结
只需一个
PanelSDK实例,时间、日期、时区管理一站式搞定。无论是NTP自动对时、批量时间配置还是全球时区适配,Time 模块让你的设备时间管理更精准、更智能!
