什么是 TAI64 时间格式?
What is a TAI64 time format?
在
浏览 Logstash 日期插件文档时
我遇到了 TAI64N
日期格式。
有人可以解释一下这个时间格式吗?
TAI代表Temps Atomique International,目前国际实时标准。一 TAI 秒被定义为对应于铯原子基态的两个超精细能级之间跃迁的 9,192,631,770
个辐射周期的持续时间。 TAI 还指定了一个参考系。
来自Toward a Unified Timestamp with explicit precision
TAI64 定义了一种 64 位整数格式,其中每个值标识一个特定的 SI 秒。 SI 秒的持续时间是通过铯原子状态转换的已知精确计数来定义的。时间结构为从公历 1970 年 1 月 1 日开始的秒数序列,当时原子时 (TAI) 成为实时的国际标准。该标准定义了 1970 年之前的 262 秒,以及从这个纪元开始的另外 262 秒,因此涵盖了大约 3000 亿年的跨度,对于大多数应用来说已经足够了。
扩展 TAI64N 和 TAI64NA 允许更精细的时间分辨率
在特定的秒内分别指特定的纳秒和阿秒(10-18s)。
虽然 TAI64 非常简单且一致,但它不仅需要扩展
关于精细分辨率,但在其他方面也是如此。
- 它只关注时间点,但完整的时间模型还需要解决时间点和时间间隔之间的相互关系。大多数模型将间隔视为一组连续的时间点。这产生了明显的转换问题——假设一个密集的时域——假设持续时间为 0 的时间点数量不能产生持续时间大于 0 的间隔,即使最短的间隔也是一组无限数时间点。
- TAI64 不解决时间方面的不确定性问题。
- 强调时间测量的单调递增连续性。然而,人类对时间的感知是由不太规律的天文现象塑造的。
准确地说,由于各种原因,TAI64 格式更好,
- 国际原子时
- 严格单调(无闰秒)
- 64 位 uint #seconds from epoch
- 32 位 uint #纳秒 (TAI64N)
- 32 位 uint #atto-seconds (TAI64NA)
您可以继续阅读,Bernstein D.J. 2002. "TAI64, TAI64N, and TAI64NA,
TAI64, TAI64N, and TAI64NA
TAI and real time
TAI64 labels and external TAI64 format. A TAI64 label is an integer
between 0 and 2^64 referring to a particular second of real time.
Integer s
refers to the TAI second beginning exactly 2^62 - s
seconds
before the beginning of 1970 TAI, if s
is between 0 inclusive and 2^62
exclusive; or the TAI second beginning exactly s - 2^62
seconds after
the beginning of 1970 TAI, if s
is between 2^62 inclusive and 2^63
exclusive. Integers 2^63 and larger are reserved for future
extensions. Under many cosmological theories, the integers under 2^63
are adequate to cover the entire expected lifetime of the universe; in
this case no extensions will be necessary. A TAI64 label is normally
stored or communicated in external TAI64 format, consisting of eight
8-bit bytes in big-endian format. This means that bytes b0 b1 b2 b3 b4 b5 b6 b7
represent the label b0 * 2^56 + b1 * 2^48 + b2 * 2^40 + b3 * 2^32 + b4 * 2^24 + b5 * 2^16 + b6 * 2^8 + b7
.
For example, bytes 3f ff ff ff ff ff ff ff hexadecimal
represent the
second that ended 1969 TAI; bytes 40 00 00 00 00 00 00 00 hexadecimal
represent the second that began 1970 TAI; bytes 40 00 00 00 00 00 00 01 hexadecimal
represent the following second. Bytes 40 00 00 00 2a 2b 2c 2d hexadecimal
represent 1992-06-02 08:07:09 TA
I, also known as
1992-06-02 08:06:43 UTC
.
在
浏览 Logstash 日期插件文档时我遇到了 TAI64N
日期格式。
有人可以解释一下这个时间格式吗?
TAI代表Temps Atomique International,目前国际实时标准。一 TAI 秒被定义为对应于铯原子基态的两个超精细能级之间跃迁的 9,192,631,770
个辐射周期的持续时间。 TAI 还指定了一个参考系。
来自Toward a Unified Timestamp with explicit precision
TAI64 定义了一种 64 位整数格式,其中每个值标识一个特定的 SI 秒。 SI 秒的持续时间是通过铯原子状态转换的已知精确计数来定义的。时间结构为从公历 1970 年 1 月 1 日开始的秒数序列,当时原子时 (TAI) 成为实时的国际标准。该标准定义了 1970 年之前的 262 秒,以及从这个纪元开始的另外 262 秒,因此涵盖了大约 3000 亿年的跨度,对于大多数应用来说已经足够了。
扩展 TAI64N 和 TAI64NA 允许更精细的时间分辨率 在特定的秒内分别指特定的纳秒和阿秒(10-18s)。
虽然 TAI64 非常简单且一致,但它不仅需要扩展 关于精细分辨率,但在其他方面也是如此。
- 它只关注时间点,但完整的时间模型还需要解决时间点和时间间隔之间的相互关系。大多数模型将间隔视为一组连续的时间点。这产生了明显的转换问题——假设一个密集的时域——假设持续时间为 0 的时间点数量不能产生持续时间大于 0 的间隔,即使最短的间隔也是一组无限数时间点。
- TAI64 不解决时间方面的不确定性问题。
- 强调时间测量的单调递增连续性。然而,人类对时间的感知是由不太规律的天文现象塑造的。
准确地说,由于各种原因,TAI64 格式更好,
- 国际原子时
- 严格单调(无闰秒)
- 64 位 uint #seconds from epoch
- 32 位 uint #纳秒 (TAI64N)
- 32 位 uint #atto-seconds (TAI64NA)
您可以继续阅读,Bernstein D.J. 2002. "TAI64, TAI64N, and TAI64NA,
TAI64, TAI64N, and TAI64NA
TAI and real time
TAI64 labels and external TAI64 format. A TAI64 label is an integer between 0 and 2^64 referring to a particular second of real time. Integer
s
refers to the TAI second beginning exactly2^62 - s
seconds before the beginning of 1970 TAI, ifs
is between 0 inclusive and 2^62 exclusive; or the TAI second beginning exactlys - 2^62
seconds after the beginning of 1970 TAI, ifs
is between 2^62 inclusive and 2^63 exclusive. Integers 2^63 and larger are reserved for future extensions. Under many cosmological theories, the integers under 2^63 are adequate to cover the entire expected lifetime of the universe; in this case no extensions will be necessary. A TAI64 label is normally stored or communicated in external TAI64 format, consisting of eight 8-bit bytes in big-endian format. This means thatbytes b0 b1 b2 b3 b4 b5 b6 b7
represent the labelb0 * 2^56 + b1 * 2^48 + b2 * 2^40 + b3 * 2^32 + b4 * 2^24 + b5 * 2^16 + b6 * 2^8 + b7
.For example,
bytes 3f ff ff ff ff ff ff ff hexadecimal
represent the second that ended 1969 TAI;bytes 40 00 00 00 00 00 00 00 hexadecimal
represent the second that began 1970 TAI;bytes 40 00 00 00 00 00 00 01 hexadecimal
represent the following second.Bytes 40 00 00 00 2a 2b 2c 2d hexadecimal
represent1992-06-02 08:07:09 TA
I, also known as1992-06-02 08:06:43 UTC
.