Skip to content

⏰ Time(时间管理)模块 · 开发者指南


🧠 模块介绍

Time(时间管理)模块,用于系统时间、日期、时区的设置与查询,支持NTP自动对时、时区自动切换、时间格式配置等功能。


🛠️ PanelSDK 初始化

java
// 推荐在 Application 或 Activity 中初始化,确保全局唯一
PanelSDK panelSDK = new PanelSDK(this);

🧩 核心方法 · 专业解读

🌐 switchAutoDateAndTime — 开关网络自动对时

java
int switchAutoDateAndTime(boolean enable)
参数说明
参数类型说明
enablebooleantrue 开启,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)
参数说明
参数类型说明
enablebooleantrue 开启,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)
参数说明
参数类型说明
timeFormatint0: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)
参数说明
参数类型说明
hourOfDayint小时 (0-23)
minuteint分钟 (0-59)
secondint秒 (0-59)
millisecondint毫秒 (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)
参数说明
参数类型说明
yearint年 (2000-2099)
monthint月 (1-12)
dayint日 (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)
参数说明
参数类型说明
timeZoneString时区字符串,如 "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/falsetrue 开启,false 关闭
典型场景代码
java
// 查询网络自动对时功能状态
boolean isAuto = panelSDK.isAutoDateAndTime();
if (isAuto) {
    // ✅ 自动对时已开启
    Log.d("Time", "网络自动对时已开启");
} else {
    // ⚠️ 自动对时未开启
    Log.w("Time", "网络自动对时未开启");
}

🟢 isAutoTimeZone — 查询网络自动时区状态

java
boolean isAutoTimeZone()
返回值说明
返回值说明
true/falsetrue 开启,false 关闭
典型场景代码
java
// 查询网络自动时区功能状态
boolean isAuto = panelSDK.isAutoTimeZone();
if (isAuto) {
    // ✅ 自动时区已开启
    Log.d("Time", "网络自动时区已开启");
} else {
    // ⚠️ 自动时区未开启
    Log.w("Time", "网络自动时区未开启");
}

🕐 getCurrentTimeFormat — 获取当前时间格式

java
int getCurrentTimeFormat()
返回值说明
返回值说明
024小时格式
112小时格式
典型场景代码
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()
返回值说明
返回值说明
StringNTP服务器地址字符串
典型场景代码
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)
参数说明
参数类型说明
ntpServerAddressStringNTP服务器地址,如 "ntp.aliyun.com"
timeOutlong超时时间(毫秒)
返回值说明
返回值说明
true/falsetrue 可用,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)
参数说明
参数类型说明
ntpServerAddressStringNTP服务器地址,如 "ntp.aliyun.com"
timeOutlong超时时间(毫秒)
返回值说明
返回值说明
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 模块让你的设备时间管理更精准、更智能!