為什麼目前毫秒通常是 13 位?
目前日期距離 Unix 紀元約有 1.7 兆毫秒,因此現代正數通常有 13 位。位數會隨日期變化:接近 1970 年的值較短,負數帶符號,未來數值會繼續增加,所以不能把「13 位」當作唯一驗證條件。
JavaScript 與精度
Date.now() 傳回來自裝置時鐘的整數毫秒。將該值乘以 1,000 或 1,000,000,可以分別表達微秒或奈秒單位,但不會產生新的計時精度。需要真正次毫秒量測的系統應使用合適的高精度時鐘,並明確定義它與 Unix 紀元的關係。
儲存與介面注意事項
在資料庫或 API 中,應同時記錄欄位單位。秒值寫入毫秒欄位會落在 1970 年附近,毫秒值寫入秒欄位則可能溢位或得到遙遠未來日期。JavaScript 一般 Number 也有安全整數上限;處理 16 位或 19 位值時,應避免在換算前發生捨入。
如何操作這個工具
介面或資料庫註明毫秒時,複製毫秒行。秒行將同一裝置讀數除以 1,000;微秒與奈秒只是單位換算,並非獨立的高精度量測。
輸入與輸出範例
| 輸入或設定 | 預期結果 |
|---|---|
1700000000 · s | 1700000000000 · ms |
1700000000000 · ms | 1700000000000000 · µs |
1700000000000 · ms | 1700000000000000000 · ns |
使用結果前的檢查
裝置時鐘不準,目前數值也不準;本頁不使用外部授時服務校準裝置。已保存的數值請到時間戳轉日期選毫秒。程式耗時應用單調時鐘測量,系統校時可能改變日曆時間。