下一个: , 上一个: Pure numbers in date strings, 上层: Date input formats


A.6.8 纪元(Epoch)以来的秒数

如果数字前面有 `@',表示这是一个秒数的内部时间戳。数字可以包含内部十进制小数点 (`.' 或者是 `,');任何超出支持范围的数字将被截掉。这个数字不能与其他日期项组合, 它提供的是完整的时间戳。

在计算机内部,时间是用纪元以来的秒数表示–一个明确定义的时间点。在 GNUPOSIXPOSIX 系统上,纪元为 1970-01-01 00:00:00 UTC,`@0' 即此时间,`@1' 表示的时间是 1970-01-01 00:00:01 UTC,依此类推。 GNU 和大多数 POSIX 兼容的系统支持 POSIX 扩展, 可使用负数,用 `@-1'-1' 代表 1969-12-31 23:59:59 UTC。

传统的 Unix 系统使用 32 位整数计算秒数,可以表示从 1901-12-13 20:45:52 到 2038-01-19 03:14:07 utc 的时间范围。新的系统使用 64 位可以计算秒和纳秒,能表示 精确到 1 纳秒的已知宇宙时间。

大多数系统上,计算时忽略秒的跳跃。例如,大多数系统 `@915148799' 表示 1998-12-31 23:59:59 utc,`@915148800' 表示 1999-01-01 00:00:00 utc, 而没有介于其间的 1998-12-31 23:59:60 utc 的表示方法。