js-apis-system-time.md 16.8 KB
Newer Older
Z
zengyawen 已提交
1 2
# 设置系统时间

3
本模块主要由时间、时区和定时三大功能组成。其中,定时服务用来管理和使用时间、时区。开发者可以通过对系统进行设置、获取等操作管理系统时间、时区,也可以通过定时功能实现定时服务如闹钟服务等。
4

Z
zengyawen 已提交
5 6 7 8 9
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块
Z
zengyawen 已提交
10

11

Z
zengyawen 已提交
12 13 14 15 16
```
import systemTime from '@ohos.systemTime';
```


Z
zengyawen 已提交
17 18 19 20
## systemTime.setTime

setTime(time : number, callback : AsyncCallback<void>) : void

Z
zengyawen 已提交
21 22
设置系统时间。

23
**需要权限:** ohos.permission.SET_TIME
Z
zengyawen 已提交
24

25
**系统能力:** SystemCapability.Miscservices.Time
Z
zengyawen 已提交
26

27 28
**参数:**

29 30 31 32
| 参数名   | 类型                      | 必填 | 说明                                       |
| -------- | ------------------------- | ---- | ------------------------------------------ |
| time     | number                    | 是   | 目标时间戳(ms)。                         |
| callback | AsyncCallback<void> | 是   | 回调函数,可以在回调函数中处理接口返回值。 |
Z
zengyawen 已提交
33

34
**示例:**
35

36
  ```js
Z
zengyawen 已提交
37 38 39 40 41 42 43
  // time对应的时间为2021-01-20 02:36:25
  var time = 1611081385000;
  systemTime.setTime(time, (error, data) => {
      if (error) {
          console.error(`failed to systemTime.setTime because ` + JSON.stringify(error));
          return;
      }
Z
zengyawen 已提交
44
      console.log(`systemTime.setTime success data : ` + JSON.stringify(data));
Z
zengyawen 已提交
45 46 47 48 49 50 51 52
  });
  ```


## systemTime.setTime

setTime(time : number) : Promise<void>

Z
zengyawen 已提交
53 54
设置系统时间。

55
**需要权限:** ohos.permission.SET_TIME
Z
zengyawen 已提交
56

57
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
58

59 60
**参数:**

61 62 63
| 参数名 | 类型   | 必填 | 说明               |
| ------ | ------ | ---- | ------------------ |
| time   | number | 是   | 目标时间戳(ms)。 |
64 65

**返回值:**
Z
zengyawen 已提交
66

67 68 69
| 类型                | 说明                 |
| ------------------- | -------------------- |
| Promise<void> | 返回的异步回调函数。 |
Z
zengyawen 已提交
70

71
**示例:**
72

73
  ```js
Z
zengyawen 已提交
74 75 76
  // time对应的时间为2021-01-20 02:36:25
  var time = 1611081385000;
  systemTime.setTime(time).then((data) => {
Z
zengyawen 已提交
77
      console.log(`systemTime.setTime success data : ` + JSON.stringify(data));
Z
zengyawen 已提交
78 79 80 81 82 83
  }).catch((error) => {
      console.error(`failed to systemTime.setTime because ` + JSON.stringify(error));
  });
  ```


Z
zengyawen 已提交
84 85 86 87 88 89
## systemTime.getCurrentTime<sup>8+</sup>

getCurrentTime(isNano?: boolean, callback: AsyncCallback&lt;number&gt;): void

获取自 Unix 纪元以来经过的时间,使用callback形式返回结果。

90
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
91

92 93
**参数:**

94 95 96 97
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| isNano   | boolean                     | 否   | 返回结果是否为纳秒数。                                                                                                                                                              - true:纳秒数。 <br>- false:毫秒数。 <br> |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数,返回自&nbsp;Unix&nbsp;纪元以来经过的时间。         |
Z
zengyawen 已提交
98

99
**示例:**
100

101
  ```js
Z
zengyawen 已提交
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
  systemTime.getCurrentTime(true, (error, data) => {
      if (error) {
          console.error(`failed to systemTime.getCurrentTime because ` + JSON.stringify(error));
          return;
      }
      console.log(`systemTime.getCurrentTime success data : ` + JSON.stringify(data));
  });
  ```


## systemTime.getCurrentTime<sup>8+</sup>

getCurrentTime(isNano?: boolean): Promise&lt;number&gt;

获取自 Unix 纪元以来经过的时间,使用Promise形式返回结果。

118
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
119

120 121
**参数:**

122 123 124
| 参数名 | 类型    | 必填 | 说明                                                         |
| ------ | ------- | ---- | ------------------------------------------------------------ |
| isNano | boolean | 否   | 返回结果是否为纳秒数。                                                                                                                                                              - true:纳秒数。 <br/>- false:毫秒数。 <br/> |
Z
zengyawen 已提交
125

126 127
**返回值:**

128 129 130
| 类型                  | 说明                                                         |
| --------------------- | ------------------------------------------------------------ |
| Promise&lt;number&gt; | 以Promise形式返回结果,返回自&nbsp;Unix&nbsp;纪元以来经过的时间。 |
Z
zengyawen 已提交
131

132
**示例:**
133

134
  ```js
Z
zengyawen 已提交
135 136 137 138 139 140 141 142 143 144 145 146 147 148
  systemTime.getCurrentTime().then((data) => {
      console.log(`systemTime.getCurrentTime success data : ` + JSON.stringify(data));
  }).catch((error) => {
      console.error(`failed to systemTime.getCurrentTime because ` + JSON.stringify(error));
  });
  ```


## systemTime.getRealActiveTime<sup>8+</sup>

getRealActiveTime(isNano?: boolean, callback: AsyncCallback&lt;number&gt;): void

获取自系统启动以来经过的时间,不包括深度睡眠时间,使用callback形式返回结果。

149
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
150

151 152
**参数:**

153 154 155 156
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| isNano   | boolean                     | 否   | 返回结果是否为纳秒数。                                                                                                                                                              - true:纳秒数。 <br/>- false:毫秒数。 <br/> |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数,返回自系统启动以来经过的时间,但不包括度睡眠时间。 |
Z
zengyawen 已提交
157

158
**示例:**
159

160
  ```js
Z
zengyawen 已提交
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
  systemTime.getRealActiveTime(true, (error, data) => {
      if (error) {
          console.error(`failed to systemTime.getRealActiveTimebecause ` + JSON.stringify(error));
          return;
      }
      console.log(`systemTime.getRealActiveTime success data : ` + JSON.stringify(data));
  });
  ```


## systemTime.getRealActiveTime<sup>8+</sup>

getRealActiveTime(isNano?: boolean): Promise&lt;number&gt;

获取自系统启动以来经过的时间,不包括深度睡眠时间,使用Promise形式返回结果。

177
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
178

179 180
**参数:**

181 182 183
| 参数名 | 类型    | 必填 | 说明                                                         |
| ------ | ------- | ---- | ------------------------------------------------------------ |
| isNano | boolean | 否   | 返回结果是否为纳秒数。                                                                                                                                                              - true:纳秒数。 <br/>- false:毫秒数。 <br/> |
Z
zengyawen 已提交
184

185 186
**返回值:**

187 188 189
| 类型                  | 说明                                                         |
| --------------------- | ------------------------------------------------------------ |
| Promise&lt;number&gt; | 以Promise形式返回结果,返回自系统启动以来经过的时间,但不包括深度睡眠时间。 |
Z
zengyawen 已提交
190

191
**示例:**
192

193
  ```js
194
  systemTime.getRealActiveTime().then((data) => {
Z
zengyawen 已提交
195 196 197 198 199 200 201 202 203
      console.log(`systemTime.getRealActiveTime success data : ` + JSON.stringify(data));
  }).catch((error) => {
      console.error(`failed to systemTime.getRealActiveTime because ` + JSON.stringify(error));
  });
  ```


## systemTime.getRealTime<sup>8+</sup>

204
getRealTime(callback: AsyncCallback&lt;number&gt;): void
Z
zengyawen 已提交
205 206 207

获取自系统启动以来经过的时间,包括深度睡眠时间,使用callback形式返回结果。

208
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
209

210 211
**参数:**

212 213 214 215
| 参数名   | 类型                        | 必填 | 说明                                                         |
| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
| isNano   | boolean                     | 否   | 返回结果是否为纳秒数。                                                                                                                                                              - true:纳秒数。 <br/>- false:毫秒数。 <br/> |
| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数,返回自系统启动以来经过的时间,包括深度睡眠时间。   |
Z
zengyawen 已提交
216

217
**示例:**
218

219
  ```js
Z
zengyawen 已提交
220 221 222 223 224 225 226 227 228 229 230 231
  systemTime.getRealTime(true, (error, data) => {
      if (error) {
          console.error(`failed to systemTime.getRealTime because ` + JSON.stringify(error));
          return;
      }
      console.log(`systemTime.getRealTime success data: ` + JSON.stringify(data));
  });
  ```


## systemTime.getRealTime<sup>8+</sup>

232
getRealTime(): Promise&lt;number&gt;
Z
zengyawen 已提交
233 234 235

获取自系统启动以来经过的时间,包括深度睡眠时间,使用Promise形式返回结果。

236
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
237

238 239
**参数:**

240 241 242
| 参数名 | 类型    | 必填 | 说明                                                         |
| ------ | ------- | ---- | ------------------------------------------------------------ |
| isNano | boolean | 否   | 返回结果是否为纳秒数。                                                                                                                                                                            - true:纳秒数。 <br/>- false:毫秒数。 <br/> |
Z
zengyawen 已提交
243

244 245
**返回值:**

246 247 248
| 类型                  | 说明                                                         |
| --------------------- | ------------------------------------------------------------ |
| Promise&lt;number&gt; | 以Promise形式返回结果,返回自系统启动以来经过的时间,包括深度睡眠时间。 |
Z
zengyawen 已提交
249

250
**示例:**
251

252
  ```js
Z
zengyawen 已提交
253 254 255 256 257 258 259 260
  systemTime.getRealTime().then((data) => {
      console.log(`systemTime.getRealTime success data: ` + JSON.stringify(data));
  }).catch((error) => {
      console.error(`failed to systemTime.getRealTime because ` + JSON.stringify(error));
  });
  ```


Z
zengyawen 已提交
261 262 263 264
## systemTime.setDate

setDate(date: Date, callback: AsyncCallback&lt;void&gt;): void

Z
zengyawen 已提交
265 266
设置系统日期,使用callback形式返回结果。

267
**需要权限:** ohos.permission.SET_TIME
Z
zengyawen 已提交
268

269
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
270

271 272
**参数:**

273 274 275 276
| 参数名   | 类型                      | 必填 | 说明                                       |
| -------- | ------------------------- | ---- | ------------------------------------------ |
| date     | Date                      | 是   | 目标日期。                                 |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数,可以在回调函数中处理接口返回值。 |
Z
zengyawen 已提交
277

278
**示例:**
279

280
  ```js
Z
zengyawen 已提交
281 282 283
  var data = new Date("October 13, 2020 11:13:00");
  systemTime.setDate(data,(error, data) => {       
      if (error) {            
Z
zengyawen 已提交
284
      console.error('failed to systemTime.setDate because ' + JSON.stringify(error));           
Z
zengyawen 已提交
285 286
      return;       
  }        
Z
zengyawen 已提交
287
      console.info('systemTime.setDate success data : ' + JSON.stringify(data));    
Z
zengyawen 已提交
288 289 290 291 292 293 294 295
  });
  ```


## systemTime.setDate

setDate(date: Date): Promise&lt;void&gt;

Z
zengyawen 已提交
296 297
设置系统日期,使用Promise形式返回结果。

298
**需要权限:** ohos.permission.SET_TIME
Z
zengyawen 已提交
299

300
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
301

302 303
**参数:**

304 305 306
| 参数名 | 类型 | 必填 | 说明       |
| ------ | ---- | ---- | ---------- |
| date   | Date | 是   | 目标日期。 |
Z
zengyawen 已提交
307

308 309
**返回值:**

310 311 312
| 类型                | 说明                 |
| ------------------- | -------------------- |
| Promise&lt;void&gt; | 返回的异步回调函数。 |
Z
zengyawen 已提交
313

314
**示例:**
315

316
  ```js
Z
zengyawen 已提交
317 318
  var data = new Date("October 13, 2020 11:13:00"); 
  systemTime.setDate(data).then((value) => {        
Z
zengyawen 已提交
319
      console.log(`systemTime.setDate success data : ` + JSON.stringify(value));    
Z
zengyawen 已提交
320
  }).catch((error) => {        
Z
zengyawen 已提交
321 322 323 324 325 326 327 328 329 330 331
      console.error(`failed to systemTime.setDate because: ` + JSON.stringify(error));
  });
  ```


## systemTime.getDate<sup>8+</sup>

getDate(callback: AsyncCallback&lt;Date&gt;): void

获取当前系统日期,使用callback形式返回结果。

332
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
333

334 335
**参数:**

336 337 338
| 参数名   | 类型                      | 必填 | 说明                         |
| -------- | ------------------------- | ---- | ---------------------------- |
| callback | AsyncCallback&lt;Date&gt; | 是   | 回调函数,返回当前系统日期。 |
Z
zengyawen 已提交
339

340
**示例:**
341

342
  ```js
Z
zengyawen 已提交
343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
  systemTime.getDate((error, data) => {
      if (error) {
          console.error(`failed to systemTime.getDate because ` + JSON.stringify(error));
          return;
      }
      console.log(`systemTime.getDate success data : ` + JSON.stringify(data));
  });
  ```


## systemTime.getDate<sup>8+</sup>

getDate(): Promise&lt;Date&gt;

获取当前系统日期,使用Promise形式返回结果。

359
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
360

361 362
**返回值:**

363 364 365
| 类型                | 说明                                      |
| ------------------- | ----------------------------------------- |
| Promise&lt;Date&gt; | 以Promise形式返回结果,返回当前系统日期。 |
Z
zengyawen 已提交
366

367
**示例:**
368

369
  ```js
Z
zengyawen 已提交
370 371 372 373
  systemTime.getDate().then((data) => {
      console.log(`systemTime.getDate success data : ` + JSON.stringify(data));
  }).catch((error) => {
      console.error(`failed to systemTime.getDate because ` + JSON.stringify(error));
Z
zengyawen 已提交
374 375 376 377 378 379 380 381
  });
  ```


## systemTime.setTimezone

setTimezone(timezone: string, callback: AsyncCallback&lt;void&gt;): void

Z
zengyawen 已提交
382 383
设置系统时区。

384
**需要权限:** ohos.permission.SET_TIME_ZONE
Z
zengyawen 已提交
385

386
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
387

388 389
**参数:**

390 391 392 393
| 参数名   | 类型                      | 必填 | 说明                                       |
| -------- | ------------------------- | ---- | ------------------------------------------ |
| timezone | string                    | 是   | 系统时区。                                 |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数,可以在回调函数中处理接口返回值。 |
Z
zengyawen 已提交
394

395
**示例:**
396

397
  ```js
Z
zengyawen 已提交
398 399
  systemTime.setTimezone('Asia/Shanghai', (error, data) => {       
      if (error) {          
Z
zengyawen 已提交
400
          console.error('failed to systemTime.setTimezone because ' + JSON.stringify(error));         
Z
zengyawen 已提交
401 402
          return;       
      }       
Z
zengyawen 已提交
403
      console.info('SystemTimePlugin systemTime.setTimezone success data : ' + JSON.stringify(data)); 
Z
zengyawen 已提交
404 405 406 407 408 409 410 411
  });
  ```


## systemTime.setTimezone

setTimezone(timezone: string): Promise&lt;void&gt;

Z
zengyawen 已提交
412 413
设置系统时区。

414
**需要权限:** ohos.permission.SET_TIME_ZONE
Z
zengyawen 已提交
415

416
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
417

418 419
**参数:**

420 421 422
| 参数名   | 类型   | 必填 | 说明       |
| -------- | ------ | ---- | ---------- |
| timezone | string | 是   | 系统时区。 |
Z
zengyawen 已提交
423

424 425
**返回值:**

426 427 428
| 类型                | 说明                 |
| ------------------- | -------------------- |
| Promise&lt;void&gt; | 返回的异步回调函数。 |
Z
zengyawen 已提交
429

430
**示例:**
431

432
  ```js
Z
zengyawen 已提交
433
  systemTime.setTimezone('Asia/Shanghai').then((data) => {        
Z
zengyawen 已提交
434
      console.log(`systemTime.setTimezone success data : ` + JSON.stringify(data));     
Z
zengyawen 已提交
435
  }).catch((error) => {        
Z
zengyawen 已提交
436 437 438 439 440
      console.error(`failed to systemTime.setTimezone because: ` + JSON.stringify(error));    
  });
  ```


441
## systemTime.getTimezone<sup>8+</sup>
Z
zengyawen 已提交
442

443
getTimezone(callback: AsyncCallback&lt;string&gt;): void
Z
zengyawen 已提交
444 445 446

获取系统时区,使用callback形式返回结果。

447
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
448

449 450
**参数:**

451 452 453
| 参数名   | 类型                        | 必填 | 说明                     |
| -------- | --------------------------- | ---- | ------------------------ |
| callback | AsyncCallback&lt;string&gt; | 是   | 回调函数,返回系统时区。 |
Z
zengyawen 已提交
454

455
**示例:**
456

457
  ```js
458
  systemTime.getTimezone((error, data) => {
Z
zengyawen 已提交
459
      if (error) {
460
          console.error(`failed to systemTime.getTimezone because ` + JSON.stringify(error));
Z
zengyawen 已提交
461 462
          return;
      }
463
      console.log(`systemTime.getTimezone success data : ` + JSON.stringify(data));
Z
zengyawen 已提交
464 465 466 467
  });
  ```


468
## systemTime.getTimezone<sup>8+</sup>
Z
zengyawen 已提交
469

470
getTimezone(): Promise&lt;string&gt;
Z
zengyawen 已提交
471 472 473

获取系统时区,使用Promise形式返回结果。

474
**系统能力:** SystemCapability.MiscServices.Time
Z
zengyawen 已提交
475

476 477
**返回值:**

478 479 480
| 类型                  | 说明                                  |
| --------------------- | ------------------------------------- |
| Promise&lt;string&gt; | 以Promise形式返回结果,返回系统时区。 |
Z
zengyawen 已提交
481

482
**示例:**
483

484
  ```js
485 486
  systemTime.getTimezone().then((data) => {
      console.log(`systemTime.getTimezone success data : ` + JSON.stringify(data));
Z
zengyawen 已提交
487
  }).catch((error) => {
488
      console.error(`failed to systemTime.getTimezone because ` + JSON.stringify(error));
Z
zengyawen 已提交
489
  });
490
  ```