⏰ Timestamp 轉換工具
支援秒/毫秒/微秒轉換,提供標準與自訂格式,精確到毫秒的時間工具
🕐當前時間
⚙️顯示設定
高精度模式
秒級更新 (1s) - 節省效能
時間校準 URL
使用自訂 URL 進行時間校準(需支援 HTTP Date header)
背景自動校準
關閉背景自動校準
顯示時區
已選擇:Asia/Taipei (419 個時區可選)
🎯時間校準
高精度時間校準(多次採樣 + RTT 過濾)
執行 10 次採樣,取 RTT 最小的前 3 個樣本計算平均偏差,使用 HTTP Date header 提供秒級精度
⚙️自訂時間格式
支援的格式代碼:
YYYY - 4位年份YY - 2位年份MM - 月份 (01-12)M - 月份 (1-12)DD - 日期 (01-31)D - 日期 (1-31)HH - 24小時 (00-23)H - 24小時 (0-23)hh - 12小時 (01-12)h - 12小時 (1-12)mm - 分鐘 (00-59)m - 分鐘 (0-59)ss - 秒 (00-59)s - 秒 (0-59)SSS - 毫秒 (000-999)A - AM/PM🔢Timestamp → 日期時間
📅標準日期 → Timestamp
支援格式:ISO 8601、RFC 2822、或任何 JavaScript Date 可解析的格式
✏️自訂格式 → Timestamp
請確保日期字串與格式完全匹配,使用上方的格式代碼
⏱️時間差異比較
支援標準日期格式或 Unix timestamp(自動偵測)
💡 使用說明
- • 當前時間:自動更新,可切換秒級或毫秒級精度
- • 時區顯示:支援選擇全球所有時區(600+ 時區),可搜尋過濾,顯示 UTC 偏移量,即時更新所有時間顯示
- • 時間校準:採用多次採樣 + RTT 過濾技術,使用 HTTP Date header 提供秒級精度的時間同步
- • 自訂校準 URL:可指定任何支援 HTTP Date header 的端點進行校準
- • 背景自動校準:啟用後可設定 1-60 分鐘間隔自動重新校準,適合長時間使用場景
- • 高精度模式:校準後時間支援毫秒級顯示,適合搶票等高精度需求
- • 本地時間:顯示裝置上的實際時間(未校準)
- • 相對時間:顯示裝置時間與校準後時間的差異
- • Timestamp 轉換:支援秒/毫秒/微秒三種單位
- • 日期轉換:支援標準格式與完全自訂的日期格式
- • 時間差異:比較兩個時間的差異,顯示詳細的年月日時分秒
- • 複製功能:點擊任何時間值即可複製到剪貼板
🧮 時間校準演算法
1️⃣ 多次採樣(10 次)
每次採樣執行以下步驟:
t0 = performance.now() // 記錄客戶端發送請求時間
response = fetch(calibrationUrl, { method: 'HEAD' }) // 發送 HEAD 請求
t1 = performance.now() // 記錄客戶端收到回應時間
serverTime = new Date(response.headers.get('Date')).getTime()
RTT = t1 - t0 // 計算往返時間(Round-Trip Time)
2️⃣ 計算時間偏差
estimatedServerTime = serverTime + (RTT / 2)
// 假設網路延遲對稱,加上單向延遲補償
offset = estimatedServerTime - Date.now()
// 計算客戶端時鐘偏差(正值 = 客戶端慢,負值 = 客戶端快)
3️⃣ RTT 過濾(取最佳 3 個樣本)
網路延遲會影響精度,因此:
samples.sort((a, b) => a.rtt - b.rtt) // 依 RTT 由小到大排序
bestSamples = samples.slice(0, 3) // 取 RTT 最小的前 3 個
avgOffset = bestSamples.reduce(sum) / 3 // 計算平均偏差
✅ 過濾掉網路抖動造成的異常樣本,提高校準穩定性
4️⃣ 套用校準偏差
calibratedTime = Date.now() + avgOffset
// 將偏差套用到所有時間顯示(本地時間除外)
🎯 精度說明
- • 理論精度:秒級(受 HTTP Date header 限制)
- • 實際精度:受網路延遲影響,RTT 越小越準確
- • 最佳 RTT 參考:< 10ms(區域網路)、10-50ms(同城)、50-200ms(跨國)
- • 建議使用場景:搶票倒數計時、時間同步驗證、跨裝置時間對齊