15 Star 13 Fork 168

OpenHarmony / time_time_service

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README_zh.md 7.95 KB
一键复制 编辑 原始数据 按行查看 历史
wangdongqi 提交于 2023-02-27 13:35 . update README_zh.md.

时间时区部件

简介

在整个OpenHarmony架构中提供管理系统时间时区和定时的能力,支持设置定时器和获取时间、时区和日期。

图 1 子系统架构图

目录

/base/time/time_service
├── etc                      # 组件包含的进程的配置文件
├── figures                  # 构架图
├── framework/js/napi        # js接口解析成napi接口
├── interfaces/inner_api     # 组件对外提供的接口代码
├── services                 # 时间服务实现
│   └── sa_profile           # 组件包含的系统服务的配置文件和进程的配置文件
├── test                     # 接口的单元测试
└── utils                    # 组件包含日志打印和有序公共事件定义的常量

说明

js接口说明

说明:

表 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 设置回调函数,定时器到期后触发。

js接口使用说明

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');   

相关仓

时间时区子系统

time_time_service

1
https://gitee.com/openharmony/time_time_service.git
git@gitee.com:openharmony/time_time_service.git
openharmony
time_time_service
time_time_service
master

搜索帮助