纪元(Epoch)以来的秒数

来源:互联网 发布:山寨币程序员开发 编辑:程序博客网 时间:2024/06/10 19:01

 

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

 

在计算机内部,时间是用纪元以来的秒数表示–一个明确定义的时间点。在 GNU 和 POSIXPOSIX 系统上,纪元为 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 的表示方法。

 

-------------

用gettimeofday函数时看到的,gettimeofday获得的就是自从Unix纪元以来的秒数。如果用long型来存秒数,在32位机上,可以表示差不多70年的秒数。

原创粉丝点击