HarmonyOS:获取系统时间及系统时区

本模块主要由系统时间和系统时区功能组成。开发者可以设置、获取系统时间及系统时区。
说明 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

一、导入模块

javascript 复制代码
import { systemDateTime } from '@kit.BasicServicesKit';

二、TimeType10+

定义获取时间的枚举类型。
系统能力: SystemCapability.MiscServices.Time

名称 说明
STARTUP 0 自系统启动以来经过的毫秒数,包括深度睡眠时间。
ACTIVE 1 自系统启动以来经过的毫秒数,不包括深度睡眠时间。

三、systemDateTime.getCurrentTime(deprecated)

getCurrentTime(isNano: boolean, callback: AsyncCallback<number>): void

获取自Unix纪元以来经过的时间,使用callback异步回调。
说明 从API Version 12开始不再维护,建议使用systemDateTime.getTime10+替代。

系统能力: SystemCapability.MiscServices.Time

参数:

参数名 类型 必填 说明
isNano boolean 返回结果是否为纳秒数。 - true:表示返回结果为纳秒数(ns)。 - false:表示返回结果为毫秒数(ms)。
callback AsyncCallback<number> 回调函数,返回自Unix纪元以来经过的时间戳。

错误码:

以下错误码的详细介绍请参见时间时区错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Incorrect parameter types.

效果图

javascript 复制代码
function testGetCurrentTime() {
  try {
    systemDateTime.getCurrentTime(false, (error: BusinessError, time: number) => {
      if (error) {
        console.info(`testGetCurrentTime 获取当前时间出错了. message: ${error.message}, code: ${error.code}`);
        return;
      }
      console.info(`testGetCurrentTime 获取当前时间成功 currentTime : ${time}`);
    })

  } catch (e) {
    let error = e as BusinessError;
    console.info(`testGetCurrentTime 获取当前时间发生异常 message: ${error.message}, code: ${error.code}`);
  }
}

function testGetTime() {
  try {
    let time = systemDateTime.getTime(false)
    console.info(`testGetTime 获取当前时间成功 currentTime : ${time}`);
  } catch (e) {
    let error = e as BusinessError;
    console.info(`testGetTime 获取当前时间发生异常 message: ${error.message}, code: ${error.code}`);
  }
}

四、systemDateTime.getCurrentTime(deprecated)

getCurrentTime(callback: AsyncCallback): void

获取自Unix纪元以来经过的时间,使用callback异步回调。
说明 从API Version 12开始不再维护,建议使用systemDateTime.getTime10+替代。
系统能力: SystemCapability.MiscServices.Time

参数:

参数名 类型 必填 说明
callback AsyncCallback 回调函数,返回自Unix纪元以来经过的时间戳为毫秒数(ms)。

错误码:

以下错误码的详细介绍请参见时间时区错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Incorrect parameter types.

效果图

javascript 复制代码
function testGetCurrentTime2() {
  try {
    //回调函数,返回自Unix纪元以来经过的时间戳为毫秒数(ms)。
    systemDateTime.getCurrentTime((error: BusinessError, time: number) => {
      if (error) {
        console.info(`testGetCurrentTime2 获取当前时间出错了. message: ${error.message}, code: ${error.code}`);
        return;
      }
      console.info(`testGetCurrentTime2 获取当前时间成功 currentTime : ${time}`);
    });
  } catch(e) {
    let error = e as BusinessError;
    console.info(`testGetCurrentTime2 获取当前时间发生异常 message: ${error.message}, code: ${error.code}`);
  }
}

五、systemDateTime.getCurrentTime(deprecated)

getCurrentTime(isNano?: boolean): Promise

获取自Unix纪元以来经过的时间,使用Promise异步回调。
说明 从API Version 12开始不再维护,建议使用systemDateTime.getTime10+替代。
系统能力: SystemCapability.MiscServices.Time

参数:

参数名 类型 必填 说明
isNano boolean 返回结果是否为纳秒数,默认值为false。 - true:表示返回结果为纳秒数(ns)。 - false:表示返回结果为毫秒数(ms)。

返回值:

类型 说明
Promise<number> Promise对象,返回自Unix纪元以来经过的时间戳。

错误码:

以下错误码的详细介绍请参见时间时区错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.Incorrect parameter types.

效果图

javascript 复制代码
function testGetCurrentTime3() {
  try {
    systemDateTime.getCurrentTime().then((time: number) => {
      console.info(`testGetCurrentTime3 获取当前时间成功 currentTime : ${time}`);
    }).catch((error: BusinessError) => {
      console.info(`testGetCurrentTime3  获取当前时间发生错误 message: ${error.message}, code: ${error.code}`);
    });
  } catch (e) {
    let error = e as BusinessError
    console.info(`testGetCurrentTime3 获取当前时间发生异常 message: ${error.message}, code: ${error.code}`);
  }
}

六、systemDateTime.getDate(deprecated)

getDate(callback: AsyncCallback): void

获取当前系统日期,使用callback异步回调。
说明 从API version 9开始支持,从API 10开始废弃。建议使用new Date()替代,new Date()返回Date实例对象。
系统能力: SystemCapability.MiscServices.Time

参数:

参数名 类型 必填 说明
callback AsyncCallback<Date> 回调函数,返回当前系统日期。

错误码:

以下错误码的详细介绍请参见时间时区错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.System error.

效果图

javascript 复制代码
function testDate() {
  let date = new Date();
  console.info(`testDate 获取当前系统日期成功 date : ${date}`);
}

function testGetDate1() {
  try {
    systemDateTime.getDate((error: BusinessError, date: Date) => {
      if (error) {
        console.info(`testGetDate1 获取当前系统日期 发生错误 message: ${error.message}, code: ${error.code}`);
        return;
      }
      console.info(`testGetDate1 获取当前系统日期成功 date : ${date}`);
    });
  } catch (e) {
    let error = e as BusinessError;
    console.info(`testGetDate1 获取当前系统日期 发生异常 message: ${error.message}, code: ${error.code}`);
  }
}

七、systemDateTime.getDate(deprecated)

getDate(): Promise

获取当前系统日期,使用Promise异步回调。
说明 从API version 9开始支持,从API 10开始废弃。建议使用new Date()替代,new Date()返回Date实例对象。
系统能力: SystemCapability.MiscServices.Time

返回值:

类型 说明
Promise<Date> Promise对象,返回当前系统日期。

错误码:

以下错误码的详细介绍请参见时间时区错误码

错误码ID 错误信息
401 Parameter error. Possible causes: 1.System error.
javascript 复制代码
function testGetDate2() {
  try {
    systemDateTime.getDate().then((date: Date) => {
      console.info(`testGetDate2 获取当前系统日期成功 date : ${date}`);
    }).catch((error: BusinessError) => {
      console.info(`testGetDate2 获取当前系统日期 发生错误  message: ${error.message}, code: ${error.code}`);
    });
  } catch (e) {
    let error = e as BusinessError;
    console.info(`testGetDate2 获取当前系统日期 发生异常 message: ${error.message}, code: ${error.code}`);
  }
}

八、systemDateTime.getTimezone

getTimezone(callback: AsyncCallback): void

获取系统时区,使用callback异步回调。
系统能力: SystemCapability.MiscServices.Time

参数:

参数名 类型 必填 说明
allback AsyncCallback<string> 回调函数,返回系统时区。具体可见支持的系统时区

效果图

javascript 复制代码
function testGetTimezone1() {
  try {
    systemDateTime.getTimezone((error: BusinessError, data: string) => {
      if (error) {
        console.info(`testGetTimezone1 获取系统时区 发生错误 message: ${error.message}, code: ${error.code}`);
        return;
      }
      console.info(`testGetTimezone1 获取系统时区 成功 timezone : ${data}`);
    });
  } catch (e) {
    let error = e as BusinessError;
    console.info(`testGetTimezone1 获取系统时区 发生异常 message: ${error.message}, code: ${error.code}`);
  }
}

九、systemDateTime.getTimezone

getTimezone(): Promise

获取系统时区,使用Promise异步回调。
系统能力: SystemCapability.MiscServices.Time

返回值:

类型 说明
Promise<string> Promise对象,返回系统时区。具体可见支持的系统时区
javascript 复制代码
function testGetTimezone2() {
  try {
    systemDateTime.getTimezone().then((data: string) => {
      console.info(`testGetTimezone2 获取系统时区 成功 timezone : ${data}`);
    }).catch((error: BusinessError) => {
      console.info(`testGetTimezone2 获取系统时区 发生错误 message: ${error.message}, code: ${error.code}`);
    });
  } catch (e) {
    let error = e as BusinessError;
    console.info(`testGetTimezone2 获取系统时区 发生异常 message: ${error.message}, code: ${error.code}`);
  }
}

十、systemDateTime.getTimezoneSync10+

getTimezoneSync(): string

获取系统时区,使用同步方式。
系统能力: SystemCapability.MiscServices.Time

返回值:

类型 说明
string 返回系统时区。具体可见支持的系统时区

效果图

javascript 复制代码
function testGetTimezoneSync() {
  try {
    let timezone = systemDateTime.getTimezoneSync();
    console.info(`testGetTimezoneSync  获取系统时区 成功 timezone: ${timezone}`);
  } catch (e) {
    let error = e as BusinessError;
    console.info(`testGetTimezoneSync 获取系统时区 发生异常 message: ${error.message}, code: ${error.code}`);
  }
}

十一、支持的系统时区

支持的系统时区及各时区与0时区相比的偏移量(单位:h)可见下表。

时区 偏移量
Antarctica/McMurdo 12
America/Argentina/Buenos_Aires -3
Australia/Sydney 10
America/Noronha -2
America/St_Johns -3
Africa/Kinshasa 1
America/Santiago -3
Asia/Shanghai 8
Asia/Nicosia 3
Europe/Berlin 2
America/Guayaquil -5
Europe/Madrid 2
Pacific/Pohnpei 11
America/Godthab -2
Asia/Jakarta 7
Pacific/Tarawa 12
Asia/Almaty 6
Pacific/Majuro 12
Asia/Ulaanbaatar 8
America/Mexico_City -5
Asia/Kuala_Lumpur 8
Pacific/Auckland 12
Pacific/Tahiti -10
Pacific/Port_Moresby 10
Asia/Gaza 3
Europe/Lisbon 1
Europe/Moscow 3
Europe/Kiev 3
Pacific/Wake 12
America/New_York -4
Asia/Tashkent 5
相关推荐
星空真迷人17 小时前
嵌入式鸿蒙并非精简版,核心究竟是什么?
stm32·单片机·嵌入式硬件·物联网·华为·harmonyos·iot
OH_TPC21 小时前
【鸿蒙优选三方库】@ohos/ijkplayer:在鸿蒙上像 B 站一样流畅播视频
华为·音视频·harmonyos·鸿蒙
2501_919749031 天前
华为鸿蒙经期记录APP—小羊月经
华为·harmonyos·鸿蒙
黑鲨吃西瓜1 天前
鸿蒙通用模块
harmonyos·鸿蒙
腾科IT教育2 天前
HarmonyOS开发|ArkTS UI颜色API通用规则
ui·华为·harmonyos·harmonyos开发·鸿蒙应用开发工程师
风华圆舞2 天前
HarmonyOS 自定义绘制实战 —— 用 ArkGraphics2D 画一个会卷曲翻动的页面网格
harmonyos·arkts·drawing·drawvertices·翻页卷曲·有限差分法线
风华圆舞2 天前
HarmonyOS 手势与 animator 实战 —— 捏出跟手又有弹性的翻页物理
harmonyos·手势·pixelmap·pangesture·边界回弹·native 句柄
北墨NoLimit2 天前
DevEco Code:在终端里用 AI 写鸿蒙应用
harmonyos
智塑未来2 天前
打开快、切换顺、游戏稳:鸿蒙的日常流畅表现
游戏·华为·harmonyos
智塑未来3 天前
鸿蒙游戏体验手册:四种能力从性能到玩法逐一解锁
游戏·华为·harmonyos