• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.systemDateTime (系统时间、时区)
2
3本模块主要由系统时间和系统时区功能组成。开发者可以设置、获取系统时间及系统时区。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import systemDateTime from '@ohos.systemDateTime';
13```
14
15## TimeType<sup>10+</sup>
16
17定义获取时间的枚举类型。
18
19**系统能力**: SystemCapability.MiscServices.Time
20
21| 名称    | 值   | 说明                                             |
22| ------- | ---- | ------------------------------------------------ |
23| STARTUP | 0    | 自系统启动以来经过的毫秒数,包括深度睡眠时间。   |
24| ACTIVE  | 1    | 自系统启动以来经过的毫秒数,不包括深度睡眠时间。 |
25
26## systemDateTime.getCurrentTime
27
28getCurrentTime(isNano: boolean, callback: AsyncCallback&lt;number&gt;): void
29
30获取自Unix纪元以来经过的时间,使用callback异步回调。
31
32**系统能力:** SystemCapability.MiscServices.Time
33
34**参数:**
35
36| 参数名   | 类型       | 必填 | 说明                             |
37| -------- | -------------- | ---- | ------------------ |
38| isNano   | boolean                     | 是   | 返回结果是否为纳秒数。<br>- true:表示返回结果为纳秒数(ns)。 <br>- false:表示返回结果为毫秒数(ms)。 |
39| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数,返回自Unix纪元以来经过的时间戳。         |
40
41**示例:**
42
43```ts
44import { BusinessError } from '@ohos.base';
45
46try {
47  systemDateTime.getCurrentTime(true, (error: BusinessError, time: number) => {
48    if (error) {
49      console.info(`Failed to get currentTime. message: ${error.message}, code: ${error.code}`);
50      return;
51    }
52    console.info(`Succeeded in getting currentTime : ${time}`);
53  });
54} catch(e) {
55  let error = e as BusinessError;
56  console.info(`Failed to get currentTime. message: ${error.message}, code: ${error.code}`);
57}
58```
59
60## systemDateTime.getCurrentTime
61
62getCurrentTime(callback: AsyncCallback&lt;number&gt;): void
63
64获取自Unix纪元以来经过的时间,使用callback异步回调。
65
66**系统能力:** SystemCapability.MiscServices.Time
67
68**参数:**
69
70| 参数名   | 类型               | 必填 | 说明                            |
71| -------- | ----------- | ---- | ---------------------------------- |
72| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数,返回自Unix纪元以来经过的时间戳(ms)。         |
73
74**示例:**
75
76```ts
77import { BusinessError } from '@ohos.base';
78
79try {
80  systemDateTime.getCurrentTime((error: BusinessError, time: number) => {
81    if (error) {
82      console.info(`Failed to get currentTime. message: ${error.message}, code: ${error.code}`);
83      return;
84    }
85    console.info(`Succeeded in getting currentTime : ${time}`);
86  });
87} catch(e) {
88  let error = e as BusinessError;
89  console.info(`Failed to get currentTime. message: ${error.message}, code: ${error.code}`);
90}
91```
92
93## systemDateTime.getCurrentTime
94
95getCurrentTime(isNano?: boolean): Promise&lt;number&gt;
96
97获取自Unix纪元以来经过的时间,使用Promise异步回调。
98
99**系统能力:** SystemCapability.MiscServices.Time
100
101**参数:**
102
103| 参数名 | 类型    | 必填 | 说明                     |
104| ------ | ------- | ---- | ------------------------- |
105| isNano | boolean | 否   | 返回结果是否为纳秒数,默认值为false。<br/>- true:表示返回结果为纳秒数(ns)。 <br/>- false:表示返回结果为毫秒数(ms)。 |
106
107**返回值:**
108
109| 类型        | 说明                               |
110| --------------------- | --------------------------- |
111| Promise&lt;number&gt; | Promise对象,返回自Unix纪元以来经过的时间戳。 |
112
113**示例:**
114
115```ts
116import { BusinessError } from '@ohos.base';
117
118try {
119  systemDateTime.getCurrentTime().then((time: number) => {
120    console.info(`Succeeded in getting currentTime : ${time}`);
121  }).catch((error: BusinessError) => {
122    console.info(`Failed to get currentTime. message: ${error.message}, code: ${error.code}`);
123  });
124} catch(e) {
125  let error = e as BusinessError;
126  console.info(`Failed to get currentTime. message: ${error.message}, code: ${error.code}`);
127}
128```
129
130## systemDateTime.getRealActiveTime
131
132getRealActiveTime(isNano: boolean, callback: AsyncCallback&lt;number&gt;): void
133
134获取自系统启动以来经过的时间,不包括深度睡眠时间,使用callback异步回调。
135
136**系统能力:** SystemCapability.MiscServices.Time
137
138**参数:**
139
140| 参数名   | 类型                        | 必填 | 说明   |
141| -------- | ---------- | ---- | -------------------------- |
142| isNano   | boolean                     | 是   | 返回结果是否为纳秒数。<br/>- true:表示返回结果为纳秒数(ns)。 <br/>- false:表示返回结果为毫秒数(ms)。 |
143| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数,返回自系统启动以来经过的时间,但不包括深度睡眠时间。 |
144
145**示例:**
146
147```ts
148import { BusinessError } from '@ohos.base';
149
150try {
151  systemDateTime.getRealActiveTime(true, (error: BusinessError, time: number) => {
152    if (error) {
153      console.info(`Failed to get real active time. message: ${error.message}, code: ${error.code}`);
154      return;
155    }
156    console.info(`Succeeded in getting real active time : ${time}`);
157  });
158} catch(e) {
159  let error = e as BusinessError;
160  console.info(`Failed to get real active time. message: ${error.message}, code: ${error.code}`);
161}
162```
163
164## systemDateTime.getRealActiveTime
165
166getRealActiveTime(callback: AsyncCallback&lt;number&gt;): void
167
168获取自系统启动以来经过的时间,不包括深度睡眠时间,使用callback异步回调。
169
170**系统能力:** SystemCapability.MiscServices.Time
171
172**参数:**
173
174| 参数名   | 类型                        | 必填 | 说明    |
175| -------- | -------------- | ---- | --------------------- |
176| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数,返回自系统启动以来经过的时间,但不包括度睡眠时间。 |
177
178**示例:**
179
180```ts
181import { BusinessError } from '@ohos.base';
182
183try {
184  systemDateTime.getRealActiveTime((error: BusinessError, time: number) => {
185    if (error) {
186      console.info(`Failed to get real active time. message: ${error.message}, code: ${error.code}`);
187      return;
188    }
189    console.info(`Succeeded in getting real active time : ${time}`);
190  });
191} catch(e) {
192  let error = e as BusinessError;
193  console.info(`Failed to get real active time. message: ${error.message}, code: ${error.code}`);
194}
195```
196
197## systemDateTime.getRealActiveTime
198
199getRealActiveTime(isNano?: boolean): Promise&lt;number&gt;
200
201获取自系统启动以来经过的时间,不包括深度睡眠时间,使用Promise异步回调。
202
203**系统能力:** SystemCapability.MiscServices.Time
204
205**参数:**
206
207| 参数名 | 类型    | 必填 | 说明                              |
208| ------ | ------- | ---- | ----------------------------------- |
209| isNano | boolean | 否   | 返回结果是否为纳秒数,默认值为false。<br/>- true:表示返回结果为纳秒数(ns)。 <br/>- false:表示返回结果为毫秒数(ms)。 |
210
211**返回值:**
212
213| 类型                  | 说明         |
214| -------------- | -------------------------------- |
215| Promise&lt;number&gt; | Promise对象,返回自系统启动以来经过的时间,但不包括深度睡眠时间。 |
216
217**示例:**
218
219```ts
220import { BusinessError } from '@ohos.base';
221
222try {
223  systemDateTime.getRealActiveTime().then((time: number) => {
224    console.info(`Succeeded in getting real active time : ${time}`);
225  }).catch((error: BusinessError) => {
226    console.info(`Failed to get real active time. message: ${error.message}, code: ${error.code}`);
227  });
228} catch(e) {
229  let error = e as BusinessError;
230  console.info(`Failed to get real active time. message: ${error.message}, code: ${error.code}`);
231}
232```
233
234## systemDateTime.getRealTime
235
236getRealTime(isNano: boolean, callback: AsyncCallback&lt;number&gt;): void
237
238获取自系统启动以来经过的时间,包括深度睡眠时间,使用callback异步回调。
239
240**系统能力:** SystemCapability.MiscServices.Time
241
242**参数:**
243
244| 参数名   | 类型                        | 必填 | 说明   |
245| -------- | --------------- | ---- | ------------------------------- |
246| isNano   | boolean                     | 是   | 返回结果是否为纳秒数。<br/>- true:表示返回结果为纳秒数(ns)。 <br/>- false:表示返回结果为毫秒数(ms)。 |
247| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数,返回自系统启动以来经过的时间,包括深度睡眠时间。   |
248
249**示例:**
250
251```ts
252import { BusinessError } from '@ohos.base';
253
254try {
255  systemDateTime.getRealTime(true, (error: BusinessError, time: number) => {
256    if (error) {
257      console.info(`Failed to get real time. message: ${error.message}, code: ${error.code}`);
258      return;
259    }
260    console.info(`Succeeded in getting real time : ${time}`);
261  });
262} catch(e) {
263  let error = e as BusinessError;
264  console.info(`Failed to get real time. message: ${error.message}, code: ${error.code}`);
265}
266```
267
268## systemDateTime.getRealTime
269
270getRealTime(callback: AsyncCallback&lt;number&gt;): void
271
272获取自系统启动以来经过的时间,包括深度睡眠时间,使用callback异步回调。
273
274**系统能力:** SystemCapability.MiscServices.Time
275
276**参数:**
277
278| 参数名   | 类型                        | 必填 | 说明      |
279| -------- | --------- | ---- | --------------------------- |
280| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数,返回自系统启动以来经过的时间,包括深度睡眠时间。   |
281
282**示例:**
283
284```ts
285import { BusinessError } from '@ohos.base';
286
287try {
288  systemDateTime.getRealTime((error: BusinessError, time: number) => {
289    if (error) {
290      console.info(`Failed to get real time. message: ${error.message}, code: ${error.code}`);
291      return;
292    }
293    console.info(`Succeeded in getting real time : ${time}`);
294  });
295} catch(e) {
296  let error = e as BusinessError;
297  console.info(`Failed to get real time. message: ${error.message}, code: ${error.code}`);
298}
299```
300
301## systemDateTime.getRealTime
302
303getRealTime(isNano?: boolean): Promise&lt;number&gt;
304
305获取自系统启动以来经过的时间,包括深度睡眠时间,使用Promise异步回调。
306
307**系统能力:** SystemCapability.MiscServices.Time
308
309**参数:**
310
311| 参数名 | 类型    | 必填 | 说明                               |
312| ------ | ------- | ---- | ------------------------------- |
313| isNano | boolean | 否   | 返回结果是否为纳秒数,默认值为false。<br/>- true:表示返回结果为纳秒数(ns)。 <br/>- false:表示返回结果为毫秒数(ms)。 |
314
315**返回值:**
316
317| 类型                  | 说明       |
318| --------------------- | ------------------------------- |
319| Promise&lt;number&gt; | Promise对象,返回自系统启动以来经过的时间,包括深度睡眠时间。 |
320
321**示例:**
322
323```ts
324import { BusinessError } from '@ohos.base';
325
326try {
327  systemDateTime.getRealTime().then((time: number) => {
328    console.info(`Succeeded in getting real time : ${time}`);
329  }).catch((error: BusinessError) => {
330    console.info(`Failed to get real time. message: ${error.message}, code: ${error.code}`);
331  });
332} catch(e) {
333  let error = e as BusinessError;
334  console.info(`Failed to get real time. message: ${error.message}, code: ${error.code}`);
335}
336```
337
338## systemDateTime.getTime<sup>10+</sup>
339
340getTime(isNanoseconds?: boolean): number
341
342 使用同步方式获取自Unix纪元以来经过的时间。
343
344**系统能力:** SystemCapability.MiscServices.Time
345
346**参数:**
347
348| 参数名        | 类型    | 必填 | 说明                                                         |
349| ------------- | ------- | ---- | ------------------------------------------------------------ |
350| isNanoseconds | boolean | 否   | 返回结果是否为纳秒数。<br>- true:表示返回结果为纳秒数(ns)。 <br>- false:表示返回结果为毫秒数(ms)。<br>默认值为false。 |
351
352**返回值**:
353
354| 类型   | 说明                       |
355| ------ | -------------------------- |
356| number | 自Unix纪元以来经过的时间。 |
357
358**示例:**
359
360```ts
361try {
362  let time = systemDateTime.getTime(true)
363} catch(e) {
364  let error = e as BusinessError;
365  console.info(`Failed to get time. message: ${error.message}, code: ${error.code}`);
366}
367```
368
369## systemDateTime.getUptime<sup>10+</sup>
370
371getUptime(timeType: TimeType, isNanoseconds?: boolean): number
372
373使用同步方式获取自系统启动以来经过的时间。
374
375**系统能力:** SystemCapability.MiscServices.Time
376
377**参数:**
378
379| 参数名        | 类型                    | 必填 | 说明                                                         |
380| ------------- | ----------------------- | ---- | ------------------------------------------------------------ |
381| timeType      | [TimeType](#timetype10) | 是   | 获取时间的类型。                                             |
382| isNanoseconds | boolean                 | 否   | 返回结果是否为纳秒数。<br/>- true:表示返回结果为纳秒数(ns)。 <br/>- false:表示返回结果为毫秒数(ms)。<br>默认值为false。 |
383
384**返回值:**
385
386| 类型   | 说明                       |
387| ------ | -------------------------- |
388| number | 自系统启动以来经过的时间。 |
389
390**示例:**
391
392```ts
393try {
394  let time = systemDateTime.getUptime(systemDateTime.TimeType.ACTIVE, false);
395} catch(e) {
396  let error = e as BusinessError;
397  console.info(`Failed to get uptime. message: ${error.message}, code: ${error.code}`);
398}
399```
400
401## systemDateTime.getDate<sup>(deprecated)</sup>
402
403getDate(callback: AsyncCallback&lt;Date&gt;): void
404
405获取当前系统日期,使用callback异步回调。
406
407> **说明:**
408>
409> 从API version 9开始支持,从API 10开始废弃。建议使用new Date()替代,new Date()返回Date实例对象。
410
411**系统能力:** SystemCapability.MiscServices.Time
412
413**参数:**
414
415| 参数名   | 类型           | 必填 | 说明                   |
416| -------- | -------------- | ---- | --------------------- |
417| callback | AsyncCallback&lt;Date&gt; | 是   | 回调函数,返回当前系统日期。 |
418
419**示例:**
420
421```ts
422import { BusinessError } from '@ohos.base';
423
424try {
425  systemDateTime.getDate((error: BusinessError, date: Date) => {
426    if (error) {
427      console.info(`Failed to get date. message: ${error.message}, code: ${error.code}`);
428      return;
429    }
430    console.info(`Succeeded in getting date : ${date}`);;
431  });
432} catch(e) {
433  let error = e as BusinessError;
434  console.info(`Failed to get date. message: ${error.message}, code: ${error.code}`);
435}
436```
437
438## systemDateTime.getDate<sup>(deprecated)</sup>
439
440getDate(): Promise&lt;Date&gt;
441
442获取当前系统日期,使用Promise异步回调。
443
444> **说明:**
445>
446> 从API version 9开始支持,从API 10开始废弃。建议使用new Date()替代,new Date()返回Date实例对象。
447
448**系统能力:** SystemCapability.MiscServices.Time
449
450**返回值:**
451
452| 类型                | 说明                                      |
453| ------------------- | ----------------------------------------- |
454| Promise&lt;Date&gt; | Promise对象,返回当前系统日期。 |
455
456**示例:**
457
458```ts
459import { BusinessError } from '@ohos.base';
460
461try {
462  systemDateTime.getDate().then((date: Date) => {
463    console.info(`Succeeded in getting date : ${date}`);
464  }).catch((error: BusinessError) => {
465    console.info(`Failed to get date. message: ${error.message}, code: ${error.code}`);
466  });
467} catch(e) {
468  let error = e as BusinessError;
469  console.info(`Failed to get date. message: ${error.message}, code: ${error.code}`);
470}
471```
472
473## systemDateTime.getTimezone
474
475getTimezone(callback: AsyncCallback&lt;string&gt;): void
476
477获取系统时区,使用callback异步回调。
478
479**系统能力:** SystemCapability.MiscServices.Time
480
481**参数:**
482
483| 参数名   | 类型              | 必填 | 说明                 |
484| -------- | --------- | ---- | ------------------------ |
485| callback | AsyncCallback&lt;string&gt; | 是   | 回调函数,返回系统时区。具体可见[支持的系统时区](#支持的系统时区) 。 |
486
487**示例:**
488
489```ts
490import { BusinessError } from '@ohos.base';
491
492try {
493  systemDateTime.getTimezone((error: BusinessError, data: string) => {
494    if (error) {
495      console.info(`Failed to get timezone. message: ${error.message}, code: ${error.code}`);
496      return;
497    }
498    console.info(`Succeeded in get timezone : ${data}`);;
499  });
500} catch(e) {
501  let error = e as BusinessError;
502  console.info(`Failed to get timezone. message: ${error.message}, code: ${error.code}`);
503}
504```
505
506## systemDateTime.getTimezone
507
508getTimezone(): Promise&lt;string&gt;
509
510获取系统时区,使用Promise异步回调。
511
512**系统能力:** SystemCapability.MiscServices.Time
513
514**返回值:**
515
516| 类型                  | 说明                                  |
517| --------------------- | ------------------------------------- |
518| Promise&lt;string&gt; | Promise对象,返回系统时区。具体可见[支持的系统时区](#支持的系统时区) 。 |
519
520**示例:**
521
522```ts
523import { BusinessError } from '@ohos.base';
524
525try {
526  systemDateTime.getTimezone().then((data: string) => {
527    console.info(`Succeeded in getting timezone: ${data}`);
528  }).catch((error: BusinessError) => {
529    console.info(`Failed to get timezone. message: ${error.message}, code: ${error.code}`);
530  });
531} catch(e) {
532  let error = e as BusinessError;
533  console.info(`Failed to get timezone. message: ${error.message}, code: ${error.code}`);
534}
535```
536
537## systemDateTime.getTimezoneSync<sup>10+</sup>
538
539getTimezoneSync(): string
540
541获取系统时区,使用同步方式。
542
543**系统能力:** SystemCapability.MiscServices.Time
544
545**返回值:**
546
547| 类型   | 说明                                                       |
548| ------ | ---------------------------------------------------------- |
549| string | 返回系统时区。具体可见[支持的系统时区](#支持的系统时区) 。 |
550
551**示例:**
552
553```ts
554try {
555  let timezone = systemDateTime.getTimezoneSync();
556} catch(e) {
557  let error = e as BusinessError;
558  console.info(`Failed to get timezone. message: ${error.message}, code: ${error.code}`);
559}
560```
561
562## 支持的系统时区
563
564支持的系统时区及各时区与0时区相比的偏移量(单位:h)可见下表。
565
566| 时区                           | 偏移量         |
567| ------------------------------ | --------------------- |
568| Antarctica/McMurdo             | 12                    |
569| America/Argentina/Buenos_Aires | -3                    |
570| Australia/Sydney               | 10                    |
571| America/Noronha                | -2                    |
572| America/St_Johns               | -3                    |
573| Africa/Kinshasa                | 1                     |
574| America/Santiago               | -3                    |
575| Asia/Shanghai                  | 8                     |
576| Asia/Nicosia                   | 3                     |
577| Europe/Berlin                  | 2                     |
578| America/Guayaquil              | -5                    |
579| Europe/Madrid                  | 2                     |
580| Pacific/Pohnpei                | 11                    |
581| America/Godthab                | -2                    |
582| Asia/Jakarta                   | 7                     |
583| Pacific/Tarawa                 | 12                    |
584| Asia/Almaty                    | 6                     |
585| Pacific/Majuro                 | 12                    |
586| Asia/Ulaanbaatar               | 8                     |
587| America/Mexico_City            | -5                    |
588| Asia/Kuala_Lumpur              | 8                     |
589| Pacific/Auckland               | 12                    |
590| Pacific/Tahiti                 | -10                   |
591| Pacific/Port_Moresby           | 10                    |
592| Asia/Gaza                      | 3                     |
593| Europe/Lisbon                  | 1                     |
594| Europe/Moscow                  | 3                     |
595| Europe/Kiev                    | 3                     |
596| Pacific/Wake                   | 12                    |
597| America/New_York               | -4                    |
598| Asia/Tashkent                  | 5                     |