1# @ohos.systemTime (System Time and Time Zone)
2
3The **systemTime** module provides system time and time zone features. You can use the APIs of this module to set and obtain the system time and time zone.
4
5> **NOTE**
6>
7> - The APIs of this module are no longer maintained since API version 9. You are advised to use [@ohos.systemDateTime (system time and time zone)](js-apis-date-time.md).
8> - The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
9
10## Modules to Import
11
12```ts
13import { systemTime } from '@kit.BasicServicesKit';
14```
15
16## systemTime.getCurrentTime<sup>8+(deprecated)</sup>
17
18getCurrentTime(isNano: boolean, callback: AsyncCallback&lt;number&gt;): void
19
20Obtains the time elapsed since the Unix epoch. This API uses an asynchronous callback to return the result.
21
22**System capability**: SystemCapability.MiscServices.Time
23
24**Parameters**
25
26| Name  | Type      | Mandatory| Description                            |
27| -------- | -------------- | ---- | ------------------ |
28| isNano   | boolean                     | Yes  | Whether the time to return is in nanoseconds.<br>- **true**: in nanoseconds.<br>- **false**: in milliseconds.|
29| callback | AsyncCallback&lt;number&gt; | Yes  | Callback used to return the time elapsed since the Unix epoch.        |
30
31**Error codes**
32
33For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
34
35| ID| Error Message                                   |
36| -------- | ------------------------------------------- |
37| -1       | Parameter check failed, permission denied, or system error. |
38
39**Example**
40
41```ts
42import { BusinessError } from '@kit.BasicServicesKit';
43
44try {
45  systemTime.getCurrentTime(true, (error: BusinessError, time: number) => {
46    if (error) {
47      console.info(`Failed to getting currentTime. message: ${error.message}, code: ${error.code}`);
48      return;
49    }
50    console.info(`Succeeded in getting currentTime: ${time}`);
51  });
52} catch(e) {
53  let error = e as BusinessError;
54  console.info(`Failed to get currentTime. message: ${error.message}, code: ${error.code}`);
55}
56```
57
58## systemTime.getCurrentTime<sup>8+(deprecated)</sup>
59
60getCurrentTime(callback: AsyncCallback&lt;number&gt;): void
61
62Obtains the time elapsed since the Unix epoch. This API uses an asynchronous callback to return the result.
63
64**System capability**: SystemCapability.MiscServices.Time
65
66**Parameters**
67
68| Name  | Type              | Mandatory| Description                           |
69| -------- | ----------- | ---- | ---------------------------------- |
70| callback | AsyncCallback&lt;number&gt; | Yes  | Callback used to return the time elapsed since the Unix epoch.        |
71
72**Error codes**
73
74For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
75
76| ID| Error Message                                   |
77| -------- | ------------------------------------------- |
78| -1       | Parameter check failed, permission denied, or system error. |
79
80**Example**
81
82```ts
83import { BusinessError } from '@kit.BasicServicesKit';
84
85try {
86  systemTime.getCurrentTime((error: BusinessError, time: number) => {
87    if (error) {
88      console.info(`Failed to getting currentTime. message: ${error.message}, code: ${error.code}`);
89      return;
90    }
91    console.info(`Succeeded in getting currentTime : ${time}`);
92  });
93} catch(e) {
94  let error = e as BusinessError;
95  console.info(`Failed to get currentTime. message: ${error.message}, code: ${error.code}`);
96}
97```
98
99## systemTime.getCurrentTime<sup>8+(deprecated)</sup>
100
101getCurrentTime(isNano?: boolean): Promise&lt;number&gt;
102
103Obtains the time elapsed since the Unix epoch. This API uses a promise to return the result.
104
105**System capability**: SystemCapability.MiscServices.Time
106
107**Parameters**
108
109| Name| Type   | Mandatory| Description                    |
110| ------ | ------- | ---- | ------------------------- |
111| isNano | boolean | No  | Whether the time to return is in nanoseconds. The default value is **false**.<br>The default value is false.<br>- **true**: in nanoseconds.<br>- **false**: in milliseconds.|
112
113**Return value**
114
115| Type       | Description                              |
116| --------------------- | --------------------------- |
117| Promise&lt;number&gt; | Promise used to return the time elapsed since the Unix epoch.|
118
119**Error codes**
120
121For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
122
123| ID| Error Message                                   |
124| -------- | ------------------------------------------- |
125| -1       | Parameter check failed, permission denied, or system error. |
126
127**Example**
128
129```ts
130import { BusinessError } from '@kit.BasicServicesKit';
131
132try {
133  systemTime.getCurrentTime().then((time: number) => {
134    console.info(`Succeeded in getting currentTime : ${time}`);
135  }).catch((error: BusinessError) => {
136    console.info(`Failed to getting currentTime. message: ${error.message}, code: ${error.code}`);
137  });
138} catch(e) {
139  let error = e as BusinessError;
140  console.info(`Failed to get currentTime. message: ${error.message}, code: ${error.code}`);
141}
142```
143
144## systemTime.getRealActiveTime<sup>8+(deprecated)</sup>
145
146getRealActiveTime(isNano: boolean, callback: AsyncCallback&lt;number&gt;): void
147
148Obtains the time elapsed since system startup, excluding the deep sleep time. This API uses an asynchronous callback to return the result.
149
150**System capability**: SystemCapability.MiscServices.Time
151
152**Parameters**
153
154| Name  | Type                       | Mandatory| Description  |
155| -------- | ---------- | ---- | -------------------------- |
156| isNano   | boolean                     | Yes  | Whether the time to return is in nanoseconds.<br>- **true**: in nanoseconds.<br>- **false**: in milliseconds.|
157| callback | AsyncCallback&lt;number&gt; | Yes  | Callback used to return the time.|
158
159**Error codes**
160
161For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
162
163| ID| Error Message                                   |
164| -------- | ------------------------------------------- |
165| -1       | Parameter check failed, permission denied, or system error. |
166
167**Example**
168
169```ts
170import { BusinessError } from '@kit.BasicServicesKit';
171
172try {
173  systemTime.getRealActiveTime(true, (error: BusinessError, time: number) => {
174    if (error) {
175      console.info(`Failed to getting real active time. message: ${error.message}, code: ${error.code}`);
176      return;
177    }
178    console.info(`Succeeded in getting real active time : ${time}`);
179  });
180} catch(e) {
181  let error = e as BusinessError;
182  console.info(`Failed to get real active time. message: ${error.message}, code: ${error.code}`);
183}
184```
185
186## systemTime.getRealActiveTime<sup>8+(deprecated)</sup>
187
188getRealActiveTime(callback: AsyncCallback&lt;number&gt;): void
189
190Obtains the time elapsed since system startup, excluding the deep sleep time. This API uses an asynchronous callback to return the result.
191
192**System capability**: SystemCapability.MiscServices.Time
193
194**Parameters**
195
196| Name  | Type                       | Mandatory| Description   |
197| -------- | -------------- | ---- | --------------------- |
198| callback | AsyncCallback&lt;number&gt; | Yes  | Callback used to return the time.|
199
200**Error codes**
201
202For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
203
204| ID| Error Message                                   |
205| -------- | ------------------------------------------- |
206| -1       | Parameter check failed, permission denied, or system error. |
207
208**Example**
209
210```ts
211import { BusinessError } from '@kit.BasicServicesKit';
212
213try {
214  systemTime.getRealActiveTime((error: BusinessError, time: number) => {
215    if (error) {
216      console.info(`Failed to getting real active time. message: ${error.message}, code: ${error.code}`);
217      return;
218    }
219    console.info(`Succeeded in getting real active time : ${time}`);
220  });
221} catch(e) {
222  let error = e as BusinessError;
223  console.info(`Failed to get real active time. message: ${error.message}, code: ${error.code}`);
224}
225```
226
227## systemTime.getRealActiveTime<sup>8+(deprecated)</sup>
228
229getRealActiveTime(isNano?: boolean): Promise&lt;number&gt;
230
231Obtains the time elapsed since system startup, excluding the deep sleep time. This API uses a promise to return the result.
232
233**System capability**: SystemCapability.MiscServices.Time
234
235**Parameters**
236
237| Name| Type   | Mandatory| Description                             |
238| ------ | ------- | ---- | ----------------------------------- |
239| isNano | boolean | No  | Whether the time to return is in nanoseconds. The default value is **false**.<br>The default value is false.<br>- **true**: in nanoseconds.<br>- **false**: in milliseconds.|
240
241**Return value**
242
243| Type                 | Description        |
244| -------------- | -------------------------------- |
245| Promise&lt;number&gt; | Promise used to return the time elapsed since system startup, excluding the deep sleep time.|
246
247**Error codes**
248
249For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
250
251| ID| Error Message                                   |
252| -------- | ------------------------------------------- |
253| -1       | Parameter check failed, permission denied, or system error. |
254
255**Example**
256
257```ts
258import { BusinessError } from '@kit.BasicServicesKit';
259
260try {
261  systemTime.getRealActiveTime().then((time: number) => {
262    console.info(`Succeeded in getting real active time : ${time}`);
263  }).catch((error: BusinessError) => {
264    console.info(`Failed to getting real active time. message: ${error.message}, code: ${error.code}`);
265  });
266} catch(e) {
267  let error = e as BusinessError;
268  console.info(`Failed to get real active time. message: ${error.message}, code: ${error.code}`);
269}
270```
271
272## systemTime.getRealTime<sup>8+(deprecated)</sup>
273
274getRealTime(isNano: boolean, callback: AsyncCallback&lt;number&gt;): void
275
276Obtains the time elapsed since system startup, including the deep sleep time. This API uses an asynchronous callback to return the result.
277
278**System capability**: SystemCapability.MiscServices.Time
279
280**Parameters**
281
282| Name  | Type                       | Mandatory| Description  |
283| -------- | --------------- | ---- | ------------------------------- |
284| isNano   | boolean                     | Yes  | Whether the time to return is in nanoseconds.<br>- **true**: in nanoseconds.<br>- **false**: in milliseconds.|
285| callback | AsyncCallback&lt;number&gt; | Yes  | Callback used to return the time.  |
286
287**Error codes**
288
289For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
290
291| ID| Error Message                                   |
292| -------- | ------------------------------------------- |
293| -1       | Parameter check failed, permission denied, or system error. |
294
295**Example**
296
297```ts
298import { BusinessError } from '@kit.BasicServicesKit';
299
300try {
301  systemTime.getRealTime(true, (error: BusinessError, time: number) => {
302    if (error) {
303      console.info(`Failed to getting real time. message: ${error.message}, code: ${error.code}`);
304      return;
305    }
306    console.info(`Succeeded in getting real time : ${time}`);
307  });
308} catch(e) {
309  let error = e as BusinessError;
310  console.info(`Failed to get real time. message: ${error.message}, code: ${error.code}`);
311}
312```
313
314## systemTime.getRealTime<sup>8+(deprecated)</sup>
315
316getRealTime(callback: AsyncCallback&lt;number&gt;): void
317
318Obtains the time elapsed since system startup, including the deep sleep time. This API uses an asynchronous callback to return the result.
319
320**System capability**: SystemCapability.MiscServices.Time
321
322**Parameters**
323
324| Name  | Type                       | Mandatory| Description     |
325| -------- | --------- | ---- | --------------------------- |
326| callback | AsyncCallback&lt;number&gt; | Yes  | Callback used to return the time.  |
327
328**Error codes**
329
330For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
331
332| ID| Error Message                                   |
333| -------- | ------------------------------------------- |
334| -1       | Parameter check failed, permission denied, or system error. |
335
336**Example**
337
338```ts
339import { BusinessError } from '@kit.BasicServicesKit';
340
341try {
342  systemTime.getRealTime((error: BusinessError, time: number) => {
343    if (error) {
344      console.info(`Failed to getting real time. message: ${error.message}, code: ${error.code}`);
345      return;
346    }
347    console.info(`Succeeded in getting real time : ${time}`);
348  });
349} catch(e) {
350  let error = e as BusinessError;
351  console.info(`Failed to get real time. message: ${error.message}, code: ${error.code}`);
352}
353```
354
355## systemTime.getRealTime<sup>8+(deprecated)</sup>
356
357getRealTime(isNano?: boolean): Promise&lt;number&gt;
358
359Obtains the time elapsed since system startup, including the deep sleep time. This API uses a promise to return the result.
360
361**System capability**: SystemCapability.MiscServices.Time
362
363**Parameters**
364
365| Name| Type   | Mandatory| Description                              |
366| ------ | ------- | ---- | ------------------------------- |
367| isNano | boolean | No  | Whether the time to return is in nanoseconds. The default value is **false**.<br>The default value is false.<br>- **true**: in nanoseconds.<br>- **false**: in milliseconds.|
368
369**Return value**
370
371| Type                 | Description      |
372| --------------------- | ------------------------------- |
373| Promise&lt;number&gt; | Promise used to return the time elapsed since system startup, including the deep sleep time.|
374
375**Error codes**
376
377For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
378
379| ID| Error Message                                   |
380| -------- | ------------------------------------------- |
381| -1       | Parameter check failed, permission denied, or system error. |
382
383**Example**
384
385```ts
386import { BusinessError } from '@kit.BasicServicesKit';
387
388try {
389  systemTime.getRealTime().then((time: number) => {
390    console.info(`Succeeded in getting real time : ${time}`);
391  }).catch((error: BusinessError) => {
392    console.info(`Failed to getting real time. message: ${error.message}, code: ${error.code}`);
393  });
394} catch(e) {
395  let error = e as BusinessError;
396  console.info(`Failed to get real time. message: ${error.message}, code: ${error.code}`);
397}
398```
399
400## systemTime.getDate<sup>8+(deprecated)</sup>
401
402getDate(callback: AsyncCallback&lt;Date&gt;): void
403
404Obtains the current system date. This API uses an asynchronous callback to return the result.
405
406**System capability**: SystemCapability.MiscServices.Time
407
408**Parameters**
409
410| Name  | Type          | Mandatory| Description                  |
411| -------- | -------------- | ---- | --------------------- |
412| callback | AsyncCallback&lt;Date&gt; | Yes  | Callback used to return the current system date.|
413
414**Error codes**
415
416For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
417
418| ID| Error Message                                   |
419| -------- | ------------------------------------------- |
420| -1       | Parameter check failed, permission denied, or system error. |
421
422**Example**
423
424```ts
425import { BusinessError } from '@kit.BasicServicesKit';
426
427try {
428  systemTime.getDate((error: BusinessError, date: Date) => {
429    if (error) {
430      console.info(`Failed to get date. message: ${error.message}, code: ${error.code}`);
431      return;
432    }
433    console.info(`Succeeded in get date : ${date}`);;
434  });
435} catch(e) {
436  let error = e as BusinessError;
437  console.info(`Failed to get date. message: ${error.message}, code: ${error.code}`);
438}
439```
440
441## systemTime.getDate<sup>8+(deprecated)</sup>
442
443getDate(): Promise&lt;Date&gt;
444
445Obtains the current system date. This API uses a promise to return the result.
446
447**System capability**: SystemCapability.MiscServices.Time
448
449**Return value**
450
451| Type               | Description                                     |
452| ------------------- | ----------------------------------------- |
453| Promise&lt;Date&gt; | Promise used to return the current system date.|
454
455**Error codes**
456
457For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
458
459| ID| Error Message                                   |
460| -------- | ------------------------------------------- |
461| -1       | Parameter check failed, permission denied, or system error. |
462
463**Example**
464
465```ts
466import { BusinessError } from '@kit.BasicServicesKit';
467
468try {
469  systemTime.getDate().then((date: Date) => {
470    console.info(`Succeeded in getting date : ${date}`);
471  }).catch((error: BusinessError) => {
472    console.info(`Failed to getting date. message: ${error.message}, code: ${error.code}`);
473  });
474} catch(e) {
475  let error = e as BusinessError;
476  console.info(`Failed to get date. message: ${error.message}, code: ${error.code}`);
477}
478```
479
480## systemTime.getTimezone<sup>8+(deprecated)</sup>
481
482getTimezone(callback: AsyncCallback&lt;string&gt;): void
483
484Obtains the system time zone. This API uses an asynchronous callback to return the result.
485
486**System capability**: SystemCapability.MiscServices.Time
487
488**Parameters**
489
490| Name  | Type             | Mandatory| Description                |
491| -------- | --------- | ---- | ------------------------ |
492| callback | AsyncCallback&lt;string&gt; | Yes  | Callback used to return the system time zone. For details, see [Supported System Time Zones](#supported-system-time-zones).|
493
494**Error codes**
495
496For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
497
498| ID| Error Message                                   |
499| -------- | ------------------------------------------- |
500| -1       | Parameter check failed, permission denied, or system error. |
501
502**Example**
503
504```ts
505import { BusinessError } from '@kit.BasicServicesKit';
506
507try {
508  systemTime.getTimezone((error: BusinessError, data: string) => {
509    if (error) {
510      console.info(`Failed to get timezone. message: ${error.message}, code: ${error.code}`);
511      return;
512    }
513    console.info(`Succeeded in get timezone : ${data}`);;
514  });
515} catch(e) {
516  let error = e as BusinessError;
517  console.info(`Failed to get timezone. message: ${error.message}, code: ${error.code}`);
518}
519```
520
521## systemTime.getTimezone<sup>8+(deprecated)</sup>
522
523getTimezone(): Promise&lt;string&gt;
524
525Obtains the system time zone. This API uses a promise to return the result.
526
527**System capability**: SystemCapability.MiscServices.Time
528
529**Return value**
530
531| Type                 | Description                                 |
532| --------------------- | ------------------------------------- |
533| Promise&lt;string&gt; | Promise used to return the system time zone. For details, see [Supported System Time Zones](#supported-system-time-zones).|
534
535**Error codes**
536
537For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
538
539| ID| Error Message                                   |
540| -------- | ------------------------------------------- |
541| -1       | Parameter check failed, permission denied, or system error. |
542
543**Example**
544
545```ts
546import { BusinessError } from '@kit.BasicServicesKit';
547
548try {
549  systemTime.getTimezone().then((data: string) => {
550    console.info(`Succeeded in getting timezone: ${data}`);
551  }).catch((error: BusinessError) => {
552    console.info(`Failed to getting timezone. message: ${error.message}, code: ${error.code}`);
553  });
554} catch(e) {
555  let error = e as BusinessError;
556  console.info(`Failed to get timezone. message: ${error.message}, code: ${error.code}`);
557}
558```
559
560## systemTime.setTime<sup>(deprecated)</sup>
561
562setTime(time : number, callback : AsyncCallback&lt;void&gt;) : void
563
564Sets the system time. This API uses an asynchronous callback to return the result.
565
566**Required permissions**: ohos.permission.SET_TIME
567
568**System capability**: SystemCapability.MiscServices.Time
569
570**Parameters**
571
572| Name  | Type           | Mandatory| Description                                      |
573| -------- | ----------- | ---- | ---------------- |
574| time     | number                    | Yes  | Timestamp to set, in milliseconds.                        |
575| callback | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result.|
576
577**Error codes**
578
579For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
580
581| ID| Error Message                                                    |
582| -------- | ------------------------------------------------------------ |
583| -1       | Parameter check failed, permission denied, or system error. |
584
585**Example**
586
587```ts
588import { BusinessError } from '@kit.BasicServicesKit';
589
590// Set the system time to 2021-01-20 02:36:25.
591let time = 1611081385000;
592try {
593  systemTime.setTime(time, (error: BusinessError) => {
594    if (error) {
595      console.info(`Failed to setting time. message: ${error.message}, code: ${error.code}`);
596      return;
597    }
598    console.info(`Succeeded in setting time`);
599  });
600} catch(e) {
601  let error = e as BusinessError;
602  console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`);
603}
604```
605
606## systemTime.setTime<sup>(deprecated)</sup>
607
608setTime(time : number) : Promise&lt;void&gt;
609
610Sets the system time. This API uses a promise to return the result.
611
612**Required permissions**: ohos.permission.SET_TIME
613
614**System capability**: SystemCapability.MiscServices.Time
615
616**Parameters**
617
618| Name| Type  | Mandatory| Description              |
619| ------ | ------ | ---- | ------------------ |
620| time   | number | Yes  | Timestamp to set, in milliseconds.|
621
622**Return value**
623
624| Type               | Description                     |
625| ------------------- | ------------------------- |
626| Promise&lt;void&gt; | Promise that returns no value.|
627
628**Error codes**
629
630For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
631
632| ID| Error Message                                                    |
633| -------- | ------------------------------------------------------------ |
634| -1       | Parameter check failed, permission denied, or system error. |
635
636**Example**
637
638```ts
639import { BusinessError } from '@kit.BasicServicesKit';
640
641// Set the system time to 2021-01-20 02:36:25.
642let time = 1611081385000;
643try {
644  systemTime.setTime(time).then(() => {
645    console.info(`Succeeded in setting time.`);
646  }).catch((error: BusinessError) => {
647    console.info(`Failed to setting time. message: ${error.message}, code: ${error.code}`);
648  });
649} catch(e) {
650  let error = e as BusinessError;
651  console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`);
652}
653```
654
655## systemTime.setDate<sup>(deprecated)</sup>
656
657setDate(date: Date, callback: AsyncCallback&lt;void&gt;): void
658
659Sets the system date. This API uses an asynchronous callback to return the result.
660
661**Required permissions**: ohos.permission.SET_TIME
662
663**System capability**: SystemCapability.MiscServices.Time
664
665**Parameters**
666
667| Name  | Type                     | Mandatory| Description            |
668| -------- | ------------- | ---- | --------------------- |
669| date     | Date                      | Yes  | Target date to set.                                |
670| callback | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result.|
671
672**Error codes**
673
674For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
675
676| ID| Error Message                                                    |
677| -------- | ------------------------------------------------------------ |
678| -1       | Parameter check failed, permission denied, or system error. |
679
680**Example**
681
682```ts
683import { BusinessError } from '@kit.BasicServicesKit';
684
685let date = new Date();
686try {
687  systemTime.setDate(date, (error: BusinessError) => {
688    if (error) {
689      console.info(`Failed to setting date. message: ${error.message}, code: ${error.code}`);
690      return;
691    }
692    console.info(`Succeeded in setting date.`);
693  });
694} catch(e) {
695  let error = e as BusinessError;
696  console.info(`Failed to set date. message: ${error.message}, code: ${error.code}`);
697}
698```
699
700## systemTime.setDate<sup>(deprecated)</sup>
701
702setDate(date: Date): Promise&lt;void&gt;
703
704Sets the system date. This API uses a promise to return the result.
705
706**Required permissions**: ohos.permission.SET_TIME
707
708**System capability**: SystemCapability.MiscServices.Time
709
710**Parameters**
711
712| Name| Type| Mandatory| Description      |
713| ------ | ---- | ---- | ---------- |
714| date   | Date | Yes  | Target date to set.|
715
716**Return value**
717
718| Type               | Description                |
719| ------------------- | -------------------- |
720| Promise&lt;void&gt; | Promise that returns no value.|
721
722**Error codes**
723
724For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
725
726| ID| Error Message                                                    |
727| -------- | ------------------------------------------------------------ |
728| -1       | Parameter check failed, permission denied, or system error. |
729
730**Example**
731
732```ts
733import { BusinessError } from '@kit.BasicServicesKit';
734
735let date = new Date();
736try {
737  systemTime.setDate(date).then(() => {
738    console.info(`Succeeded in setting date.`);
739  }).catch((error: BusinessError) => {
740    console.info(`Failed to setting date. message: ${error.message}, code: ${error.code}`);
741  });
742} catch(e) {
743  let error = e as BusinessError;
744  console.info(`Failed to set date. message: ${error.message}, code: ${error.code}`);
745}
746```
747
748## systemTime.setTimezone<sup>(deprecated)</sup>
749
750setTimezone(timezone: string, callback: AsyncCallback&lt;void&gt;): void
751
752Sets the system time zone. This API uses an asynchronous callback to return the result.
753
754**Required permissions**: ohos.permission.SET_TIME_ZONE
755
756**System capability**: SystemCapability.MiscServices.Time
757
758**Parameters**
759
760| Name  | Type             | Mandatory| Description                 |
761| -------- | ------------- | ---- | -------------------------- |
762| timezone | string                    | Yes  | System time zone to set. For details, see [Supported System Time Zones](#supported-system-time-zones).       |
763| callback | AsyncCallback&lt;void&gt; | Yes  | Callback used to return the result.|
764
765**Error codes**
766
767For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
768
769| ID| Error Message                                                    |
770| -------- | ------------------------------------------------------------ |
771| -1       | Parameter check failed, permission denied, or system error. |
772
773**Example**
774
775```ts
776import { BusinessError } from '@kit.BasicServicesKit';
777
778try {
779  systemTime.setTimezone('Asia/Shanghai', (error: BusinessError) => {
780    if (error) {
781      console.info(`Failed to setting timezone. message: ${error.message}, code: ${error.code}`);
782      return;
783    }
784    console.info(`Succeeded in setting timezone.`);
785  });
786} catch(e) {
787  let error = e as BusinessError;
788  console.info(`Failed to set timezone. message: ${error.message}, code: ${error.code}`);
789}
790```
791
792## systemTime.setTimezone<sup>(deprecated)</sup>
793
794setTimezone(timezone: string): Promise&lt;void&gt;
795
796Sets the system time zone. This API uses a promise to return the result.
797
798**Required permissions**: ohos.permission.SET_TIME_ZONE
799
800**System capability**: SystemCapability.MiscServices.Time
801
802**Parameters**
803
804| Name  | Type  | Mandatory| Description      |
805| -------- | ------ | ---- | ---------- |
806| timezone | string | Yes  | System time zone to set. For details, see [Supported System Time Zones](#supported-system-time-zones).|
807
808**Return value**
809
810| Type               | Description                |
811| ------------------- | -------------------- |
812| Promise&lt;void&gt; | Promise that returns no value.|
813
814**Error codes**
815
816For details about the error codes, see [Time and Time Zone Service Error Codes](./errorcode-time.md).
817
818| ID| Error Message                                                    |
819| -------- | ------------------------------------------------------------ |
820| -1       | Parameter check failed, permission denied, or system error. |
821
822**Example**
823
824```ts
825import { BusinessError } from '@kit.BasicServicesKit';
826
827try {
828  systemTime.setTimezone('Asia/Shanghai').then(() => {
829    console.info(`Succeeded in setting timezone.`);
830  }).catch((error: BusinessError) => {
831    console.info(`Failed to setting timezone. message: ${error.message}, code: ${error.code}`);
832  });
833} catch(e) {
834  let error = e as BusinessError;
835  console.info(`Failed to set timezone. message: ${error.message}, code: ${error.code}`);
836}
837```
838
839## Supported System Time Zones
840
841The following table lists the supported system time zones and the respective offset (unit: h) between each time zone and time zone 0.
842
843| Time Zone                          | Offset        |
844| ------------------------------ | --------------------- |
845| Antarctica/McMurdo             | 12                    |
846| America/Argentina/Buenos_Aires | -3                    |
847| Australia/Sydney               | 10                    |
848| America/Noronha                | -2                    |
849| America/St_Johns               | -3                    |
850| Africa/Kinshasa                | 1                     |
851| America/Santiago               | -3                    |
852| Asia/Shanghai                  | 8                     |
853| Asia/Nicosia                   | 3                     |
854| Europe/Berlin                  | 2                     |
855| America/Guayaquil              | -5                    |
856| Europe/Madrid                  | 2                     |
857| Pacific/Pohnpei                | 11                    |
858| America/Godthab                | -2                    |
859| Asia/Jakarta                   | 7                     |
860| Pacific/Tarawa                 | 12                    |
861| Asia/Almaty                    | 6                     |
862| Pacific/Majuro                 | 12                    |
863| Asia/Ulaanbaatar               | 8                     |
864| America/Mexico_City            | -5                    |
865| Asia/Kuala_Lumpur              | 8                     |
866| Pacific/Auckland               | 12                    |
867| Pacific/Tahiti                 | -10                   |
868| Pacific/Port_Moresby           | 10                    |
869| Asia/Gaza                      | 3                     |
870| Europe/Lisbon                  | 1                     |
871| Europe/Moscow                  | 3                     |
872| Europe/Kiev                    | 3                     |
873| Pacific/Wake                   | 12                    |
874| America/New_York               | -4                    |
875| Asia/Tashkent                  | 5                     |
876