代码拉取完成,页面将自动刷新
在整个OpenHarmony架构中提供管理系统时间时区和定时的能力,支持设置定时器和获取时间、时区和日期。
图 1 子系统架构图
/base/time/time_service
├── etc # 组件包含的进程的配置文件
├── figures # 构架图
├── framework/js/napi # js接口解析成napi接口
├── interfaces/inner_api # 组件对外提供的接口代码
├── services # 时间服务实现
│ └── sa_profile # 组件包含的系统服务的配置文件和进程的配置文件
├── test # 接口的单元测试
└── utils # 组件包含日志打印和有序公共事件定义的常量
说明:
- 从API Version 9 开始,模块接口@ohos.systemTime不再维护,推荐使用新模块接口@ohos.systemDateTime
表 1 js组件systemDateTime开放的主要方法
接口名 | 描述 |
---|---|
setTime(time : number) : Promise | 设置系统时间(1970-01-01至今毫秒数),Promise方式。 |
setTime(time : number, callback : AsyncCallback) : void | 设置系统时间(1970-01-01至今毫秒数),callback方式。 |
getCurrentTime(isNano?: boolean): Promise | 获取自Unix纪元以来经过的时间,Promise方式。 |
getCurrentTime(isNano: boolean, callback: AsyncCallback): void | 获取自Unix纪元以来经过的时间,callback方式。 |
getCurrentTime(callback: AsyncCallback): void | 获取自Unix纪元以来经过的时间,callback方式。 |
getRealActiveTime(isNano?: boolean): Promise | 获取自系统启动以来经过的时间,不包括深度睡眠时间,Promise方式。 |
getRealActiveTime(isNano: boolean, callback: AsyncCallback): void | 获取自系统启动以来经过的时间,不包括深度睡眠时间,callback方式。 |
getRealActiveTime(callback: AsyncCallback): void | 获取自系统启动以来经过的时间,不包括深度睡眠时间,callback方式。 |
getRealTime(isNano?: boolean): Promise | 获取自系统启动以来经过的时间,包括深度睡眠时间,Promise方式。 |
getRealTime(isNano: boolean, callback: AsyncCallback): void | 获取自系统启动以来经过的时间,包括深度睡眠时间,callback方式。 |
getRealTime(callback: AsyncCallback): void | 获取自系统启动以来经过的时间,包括深度睡眠时间,callback方式。 |
setDate(date: Date, callback: AsyncCallback): void; | 设置系统时间(Date格式),Promise方式。 |
setDate(date: Date): Promise | 设置系统时间(Date格式),callback方式。 |
getDate(callback: AsyncCallback): void | 获取当前系统日期,Promise方式。 |
getDate(): Promise | 获取当前系统日期,callback方式。 |
setTimezone(timezone: string, callback: AsyncCallback): void | 设置系统时区,callback方式。 |
setTimezone(timezone: string): Promise | 设置系统时区,Promise方式。 |
getTimezone(callback: AsyncCallback): void | 获取系统时区,callback方式。 |
getTimezone(): Promise | 获取系统时区,Promise方式。 |
表 2 js组件systemTimer开放的主要方法
接口名 | 描述 |
---|---|
createTimer(options: TimerOptions, callback: AsyncCallback): void | 创建定时器,callback方式。 |
createTimer(options: TimerOptions): Promise | 创建定时器,promise方式。 |
startTimer(timer: number, triggerTime: number, callback: AsyncCallback): void | 开启定时器,callback方式。 |
startTimer(timer: number, triggerTime: number): Promise | 开启定时器,promise方式。 |
stopTimer(timer: number, callback: AsyncCallback): void | 停止定时器,callback方式。 |
stopTimer(timer: number): Promise | 停止定时器,promise方式。 |
destroyTimer(timer: number, callback: AsyncCallback): void | 销毁定时器,callback方式。 |
destroyTimer(timer: number): Promise | 摧毁定时器,promise方式。 |
表 3 systemTimer组件参数TimerOptions说明
名称 | 类型 | 说明 |
---|---|---|
type | number | 定时器类型。 取值为1时,表示为系统启动时间定时器(定时器启动时间不能晚于当前设置的系统时间); 取值为2时,表示为唤醒定时器; 取值为4时,表示为精准定时器; 取值为5时,表示为IDLE模式定时器(暂不支持)。 |
repeat | boolean | true 为循环定时器,false为单次定时器。 |
interval | number | 如果是循环定时器,repeat值应大于5000毫秒,非重复定时器置为0。 |
wantAgent | wantAgent | 设置通知的wantagent,定时器到期后通知。 |
callback | => void | 设置回调函数,定时器到期后触发。 |
systemDateTime模块使用示例:
// 导入模块
import systemDateTime from '@ohos.systemDateTime';
// Promise方式的异步方法设置时间
// time对应的时间为2021-01-20 02:36:25
let time = 1611081385000;
try {
systemDateTime.setTime(time).then(() => {
console.info(`Succeeded in setting time.`);
}).catch((error) => {
console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`);
});
} catch(e) {
console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`);
}
// callback方式的异步方法设置时间
// time对应的时间为2021-01-20 02:36:25
let time = 1611081385000;
try {
systemDateTime.setTime(time, (error) => {
if (error) {
console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`);
return;
}
console.info(`Succeeded in setting time`);
});
} catch(e) {
console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`);
}
systemTimer模块使用示例:
// 导入模块
import systemTimer from '@ohos.systemTimer';
console.log("start");
var options:TimerOptions{
type:TIMER_TYPE_REALTIME,
repeat:false,
interval:Number.MAX_VALUE/2,
}
console.log("create timer")
let timerId = systemTimer.Timer(options)
console.log("start timer")
let startTimerRes = systemTimer.startTimer(timerId, 100000)
console.log("stop timer")
let stopTimerRes = systemTimer.stopTimer(timerId)
console.log("destroy timer")
let destroyTimerRes = systemTimer.destroyTimer(timerId)
console.log('end');
时间时区子系统
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型