根据我的理解,Unix时间格式是从1970年00:00:00开始计算的秒数。例如,如果我们当前的时间是 1970 00:01:00,那么 Unix 时间将为 60(从 1970 00:00:00 开始已经过去了 60 秒)
如果我们在下面的系统日志中看到这一点,
<190>11445340430.714226137BS_S1_MX400 流 src=172.20.62.44 dst=86.162.141.216 mac=00:25:46:20:30:00 协议=udp sport=16742 dport=15029 模式:拒绝 udp
1445340430.714226137 - This is the time format
时间格式是unix还是其他格式。如果这是在unix中,那么unix时间格式也包含小数吗?
答案1
“Unix 时间格式”不是一个我熟悉的术语;我认为这样的事情不存在。
您的意思是“UNIX 时间”吗?在这种情况下,是的,这是自 1970 年初以来的秒数;它没有定义如何存储它,也没有定义它只是整数分数。这只是自 1970-01-01 00:00 UTC 以来经过的时间。处理事情的决议是另一个问题。
你怎么打印这又是一个完全不同的问题了!
所以你需要从心理上进行治疗三个不同的东西:
- 时间(如:UNIX 时间、UTC 时间、GPS 时间……);这就是物理学。
- 时间观察(例如:我的时钟的分辨率是多少?);这就是系统内部处理时间的方式
- 时间格式(如:
strftime
,将时间打印为整秒.小数秒,或“星期三,我第一次下午喝咖啡后不久”);这就是观察/内部处理的时间的显示方式。
它不是标准化的,并且您正在查看的程序似乎决定将其打印为十进制数。好的!位数意味着纳秒分辨率,这可能是有道理的,这看起来像是来自蜂窝基础设施的消息,而这些东西实际上有纳秒的概念。然而,这也可能意味着这不是 UNIX 时间,而是一些可能以不同方式处理 GPS 闰秒补偿等的相关时间。因此,您必须阅读软件的文档(或者您正在使用的蜂窝标准,如果我的猜测是正确的)。
答案2
您看到的是 UNIX 纪元时间。这是从 1970 年 1 月 1 日 00:00:00 开始的秒数。点之后是纳秒(可以是毫秒或微秒)的时间,这在某些情况下非常有用(网络事件计时、数据库事件等)。您以人类可读形式提到的时间是:
Tuesday, October 20, 2015 11:27:10 AM and 714226137 nanoseconds.