Date Conversion

Icon Link日期转换

为了更容易地处理日期和时间,SDK 导出了 DateTime 类,它是 内置 Icon Link Date 类的包装器。下面我们将介绍实例化、实用函数和时间格式的方法。

在内部,交易和其他时间/日期资产使用 TAI64 格式进行编码。我们返回一个 DateTime 类,以便更容易地在这两种格式之间进行转换和格式化。

Icon Link实例化 DateTime

我们有一系列静态方法用于 实例化 我们的 DateTime 类。

// #import { DateTime };
 
const tai64: DateTime = DateTime.fromTai64('4611686020108779339');
const unixSeconds: DateTime = DateTime.fromUnixSeconds(1681391398);
const unixMilliseconds: DateTime = DateTime.fromUnixMilliseconds(1681391398000);

Icon LinkTAI64

fromTai64 是一个 静态 方法,允许从 TAI64 字符串创建 DateTime 类。

toTai64 是一个 实例 方法,允许将 DateTime 类转换为 TAI64 字符串。

// #import { DateTime };
 
const date: DateTime = DateTime.fromTai64('4611686020108779339');
console.log(date.toIso); // "4611686020108779339"
 
const tai64: string = date.toTai64();
console.log(tai64); // "4611686020108779339"

Icon LinkUNIX

fromUnixMilliseconds 是一个 静态 方法,允许从 UNIX 毫秒数创建 DateTime 类。

toUnixMilliseconds 是一个 实例 方法,允许将 DateTime 类转换为以毫秒为单位的 UNIX 数字。

// #import { DateTime };
 
const date: DateTime = DateTime.fromUnixMilliseconds(1681391398000);
 
const unixMilliseconds: number = date.toUnixMilliseconds();
console.log(unixMilliseconds); // 1681391398000

fromUnixSeconds 是一个 静态 方法,允许从 UNIX 秒数创建 DateTime 类。

toUnixSeconds 是一个 实例 方法,允许将 DateTime 类转换为以秒为单位的 UNIX 数字。

// #import { DateTime };
 
const date: DateTime = DateTime.fromUnixSeconds(1681391398);
 
const unixSeconds: number = date.toUnixSeconds();
console.log(unixSeconds); // 1681391398

Icon Link日期

DateTime 类扩展了 Date 对象的功能,因此所有方法都可供您使用。

// #import { DateTime };
 
const dateTime: DateTime = DateTime.fromUnixMilliseconds(1681391398000);
 
// Extends the Date object
const date: Date = dateTime;
 
// Date object methods
date.getTime(); // 1681391398000
date.toISOString(); // 2023-04-13T13:09:58.000Z
date.toDateString(); // Thu Apr 13 2023

Icon Link格式

这里我们将介绍 SDK 中使用的不同日期/时间格式。在区块链内部,我们使用 TAI64 格式,但为了方便使用,我们也支持 UNIX 格式。

Icon LinkUNIX 格式

UNIX 时间是自 协调世界时 (UTC) 1970 年 1 月 1 日星期四 00:00:00 以来经过的秒数,减去闰秒。每天被视为包含确切的 86400 秒,因此忽略了闰秒。

Icon LinkTAI 格式

TAI 代表 国际原子时间,是当前国际实时标准 来源 Icon Link

我们使用 TAI64,它是一个表示自纪元以来的纳秒数的 64 位整数。

  • TAI 秒开始于 1970 年 TAI 开始之前的 (2^62 - s) 秒,如果 s 在 0(包含)和 2^62(不包含)之间;或

  • TAI 秒开始于 1970 年 TAI 开始之后的 (2^62 + s) 秒,如果 s 在 -2^62(包含)和 0(不包含)之间。

来源 Icon Link