• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import type { AsyncCallback } from '@ohos.base';
17import { BusinessError } from '@ohos.base';
18
19export default namespace systemDateTime {
20
21  const SYSTEM_ERROR: number = 401
22
23  loadLibrary("systemdatetime_ani")
24
25  export function getCurrentTime(isNano: boolean, callback: AsyncCallback<number>): void {
26    let p1 = taskpool.execute(getTime, isNano)
27    p1.then((e :NullishType) => {
28      let error = new BusinessError<void>
29      error.code = 0
30      callback(error, e as number)
31    });
32  }
33
34  export function getCurrentTime(callback: AsyncCallback<number>): void {
35    let p1 = taskpool.execute(getTime)
36    p1.then((e :NullishType) => {
37      let error = new BusinessError<void>
38      error.code = 0
39      callback(error, e as number)
40    });
41  }
42
43  export function getCurrentTime(isNano?: boolean): Promise<number> {
44    let p = new Promise<number>((resolve: (value: number) => void, reject: (error: Object) => void): void => {
45      let p1 = taskpool.execute(getTime, isNano);
46      p1.then((e: NullishType): void => {
47        resolve(e as number);
48      });
49    });
50    return p
51  }
52
53  export native function getTime(isNanoseconds?: boolean): number;
54  export native function getTimezoneSync(): string;
55
56  export function getTimezone(callback: AsyncCallback<string>): void{
57    let p1 = taskpool.execute(getTimezoneSync)
58    p1.then((e :NullishType) => {
59      let s = e as string
60      let error = new BusinessError<void>
61      if (s === "") {
62        error.code = SYSTEM_ERROR
63      } else {
64        error.code = 0
65      }
66      callback(error, s)
67    });
68  }
69
70  export function getTimezone(): Promise<string> {
71    let p = new Promise<string>((resolve: (value: string) => void, reject: (error: Object) => void): void => {
72      let p1 = taskpool.execute(getTimezoneSync);
73      p1.then((e: NullishType): void => {
74        let s = e as string
75        if (s === "") {
76          let error = new BusinessError<void>
77          error.code = SYSTEM_ERROR
78          reject(error)
79        } else {
80          resolve(s);
81        }
82      });
83    });
84    return p
85  }
86}
87