Linux

帶小數的 Unix 時間格式

  • April 20, 2022

據我了解,Unix 時間格式是從 1970 年 00:00:00 開始計算的秒數。例如,如果我們的目前時間是 1970 00:01:00,那麼 unix 時間將是 60(從 1970 00:00:00 已經過去了 60 秒)

如果我們在下面的系統日誌中看到這一點,

<190>1 1445340430.714226137 BS_S1_MX400 流 src=172.20.62.44 dst=86.162.141.216 mac=00:25:46:20:30:00 協議=udp 運動=16742 dport=15029 模式:拒絕 udp

1445340430.714226137 - This is the time format

時間格式是 unix 還是其他格式。如果這是在 unix 中,那麼 unix 時間格式是否也包括小數?

“Unix時間格式”不是我熟悉的術語;我不認為這樣的事情存在。

你的意思是“UNIX時間”嗎?在那種情況下,是的,這是自 1970 年初以來的秒數;它沒有定義你如何儲存它,也沒有定義它只是整數分數。這只是自 1970-01-01 00:00 UTC 以來的時間。處理事情的解析度是一個不同的問題。

你如何列印這是一個完全不同的問題!

所以,你需要在精神上對待三件不同的事情

  1. 時間(如:UNIX時間、UTC時間、GPS時間……);這就是物理學。
  2. 時間觀察(如:我的時鐘有什麼解析度?);這就是您的系統內部處理時間的方式
  3. 時間格式(如:strftime,列印時間為整秒。小數秒,或“星期三,在我第一次下午喝咖啡後不久”);這就是顯示觀察/內部處理的時間的方式。

它不是標準化的,您正在查看的程序似乎已決定將其列印為十進制數。好的!位數意味著納秒解析度,這可能是有道理的,這看起來像是來自蜂窩基礎設施的消息,而這些東西實際上有納秒的概念。但是,這也可能意味著這不是 UNIX 時間,而是一些相關時間,可能會以不同的方式處理 GPS 閏秒補償等。因此,您必須閱讀軟體文件(或您使用的蜂窩標準,如果我的猜測是正確的)。

引用自:https://unix.stackexchange.com/questions/699700