--:--:--.000UTC
--------- ---
常用格式點右邊綠色按鈕,或直接點數值
時間換算貼 Unix 秒數或 ISO 字串都可以
10 位數會當成秒,13 位數當成毫秒,16 和 19 位數則是微秒和奈秒。
各語言怎麼取現在時間點一下程式碼就複製
| 語言 | ISO 8601 字串 | Unix 時間 |
|---|---|---|
| JavaScript | new Date().toISOString() | Date.now() |
| Python | datetime.now(timezone.utc).isoformat() | int(time.time()) |
| Go | time.Now().UTC().Format(time.RFC3339) | time.Now().Unix() |
| Java | Instant.now().toString() | Instant.now().getEpochSecond() |
| C# | DateTimeOffset.UtcNow.ToString("o") | DateTimeOffset.UtcNow.ToUnixTimeSeconds() |
| PHP | gmdate('c') | time() |
| Rust (chrono) | Utc::now().to_rfc3339() | Utc::now().timestamp() |
| Ruby | Time.now.utc.iso8601 | Time.now.to_i |
| Shell | date -u +%Y-%m-%dT%H:%M:%SZ | date +%s |
| PostgreSQL | SELECT now() AT TIME ZONE 'UTC'; | SELECT extract(epoch FROM now()); |
| MySQL | SELECT UTC_TIMESTAMP(); | SELECT UNIX_TIMESTAMP(); |
把 Unix 秒數轉回時間手邊有個數字,想知道那是什麼時候
| 環境 | 指令 |
|---|---|
| Linux | date -u -d @1784889000 |
| macOS | date -u -r 1784889000 |
| Python | datetime.fromtimestamp(1784889000, timezone.utc) |
| JavaScript | new Date(1784889000 * 1000).toISOString() |
| PostgreSQL | SELECT to_timestamp(1784889000); |
格式符號對照表strftime 與 Go layout
| 用途 | strftime | Go layout | 範例 |
|---|---|---|---|
| 四位年 | %Y | 2006 | 2026 |
| 月(補零) | %m | 01 | 07 |
| 日(補零) | %d | 02 | 24 |
| 24 小時制 | %H | 15 | 08 |
| 分 | %M | 04 | 30 |
| 秒 | %S | 05 | 00 |
| 小數秒 | %f(微秒) | .000 | .482 |
| 一年第幾天 | %j | — | 205 |
| 時區位移 | %z | -0700 | +0800 |
| 時區縮寫 | %Z | MST | CST |
| Unix 秒 | %s(GNU) | .Unix() | 1784889000 |
| 星期簡寫 | %a | Mon | Fri |
Go 是拿這個固定時間當範本:2006-01-02 15:04:05 -0700 MST,數字剛好照 1 到 7 排下來,記起來不難。
秒數換算設快取、TTL、過期時間的時候會用到
| 長度 | 秒 | 毫秒 |
|---|---|---|
| 1 分鐘 | 60 | 60,000 |
| 1 小時 | 3,600 | 3,600,000 |
| 1 天 | 86,400 | 86,400,000 |
| 1 週 | 604,800 | 604,800,000 |
| 30 天 | 2,592,000 | 2,592,000,000 |
| 365 天 | 31,536,000 | 31,536,000,000 |
| 第 10 億秒 | 2001-09-09T01:46:40Z | |
| 2,147,483,647 | 2038-01-19T03:14:07Z,32 位元存得下的最後一秒 | |
容易踩到的雷
- 秒和毫秒搞混。10 位數是秒,13 位數是毫秒,差了 1000 倍。弄錯的話日期不是跑到 1970 年,就是飛到五萬年後。
- 資料庫直接存本地時間。一律存 UTC,要顯示的時候才換算時區。PostgreSQL 請用
timestamptz,不要用timestamp。 - 把
+08:00當成時區。那只是時差,不是時區。只有Asia/Taipei這種名稱才知道日光節約和歷年規則怎麼變。排程和提醒一定要存這種名稱。 - 用系統時鐘算執行時間。NTP 校時的時候,時間可能會往回跳。要量長度請改用單調時鐘:
performance.now()、time.monotonic()、time.Since()。 - 以為 ISO 8601 就是 RFC 3339。ISO 8601 能接受的寫法很多(像
20260724T083000Z),RFC 3339 只是其中比較嚴格的一小塊。API 統一用 RFC 3339 最保險。 - JS 的
getMonth()從 0 開始,getDate()卻從 1 開始。還有new Date("2026-07-24")會當成 UTC,換成new Date("2026/07/24")就變本地時間。 - 認定一天就是 86400 秒。有日光節約的地方,一天可能只有 23 小時,也可能有 25 小時。要跨日請用日期函式算,不要自己加減秒數。
- 拿 Unix 時間做精密計時。它裡面根本沒有閏秒的位置,閏秒會被系統抹掉或跳過,精度要求高的場合別用。
時間是抓你電腦上的時鐘,和標準時間可能差個幾百毫秒。
0 留言