Unix 時間戳轉換器

Unix/Linux 時間戳與日期時間的雙向轉換工具,支援多個時區的轉換與對比。

當前時間

當前時間戳(秒)
1766507463
當前時間
2025-12-23 16:31:03

時間戳 轉 日期

轉換結果(自動)

日期 轉 時間戳

轉換結果(自動)

多時間戳日期時間轉換器

多時間戳日期時間轉換器

多日期時間戳轉換器

多日期時間戳轉換器

使用說明

本工具用於在不同情境下快速完成 Unix 時間戳與日期時間的雙向轉換,支援秒與毫秒精度,並可選擇目標時區進行對比顯示。提供單卡與多卡轉換器,輸入即轉換,切換時區自動刷新結果,同時內建近期時間範圍與常用時間跨度,滿足開發調試與日常換算需求。

自動識別: 工具會自動識別輸入的是秒級時間戳(10位)還是毫秒級時間戳(13位)
時區: 顯示本地時間與 UTC 時間,方便不同時區的使用者

工具功能特點

  • 輸入即轉換,支援秒/毫秒時間戳自動識別
  • 支援全域時區選擇與展示:本地、UTC、選定時區三種視圖
  • 多轉換器卡片,便於批量比對
  • 響應式介面與鍵盤友好,良好可存取性
  • 內建近期時間範圍與常用時間跨度,複製即用

時間戳是什麼?

Unix 時間戳(Unix Timestamp)是自 1970-01-01 00:00:00 UTC(Unix Epoch)以來經過的總秒數或毫秒數。

時間戳是表示時間的數字,通常以秒或毫秒為單位。

時間戳的起始點是 1970年1月1日 00:00:00 UTC,這個時間被稱為 Unix 紀元。

時間戳最初用於 Unix 操作系統,所以常被稱為 Unix 時間戳。

時間戳在程式設計與網路通訊中廣泛使用,特別是在 Web 開發中。

常見精度:秒(如 1735689600)與 毫秒(如 1735689600000)。在表示時區相關的日期時間時,需要配合時區進行格式化展示。

近期時間戳(基於全域時區)

常用時間戳(時長)

1 分鐘
60 秒
1 小時
3600 秒
1 天
86400 秒
1 週
604800 秒
1 月(按 30 天)
2592000 秒
1 年(按 365 天)
31536000 秒

時間戳的 2038 問題

2038 問題指 32 位有符號整數儲存 Unix 時間戳(以秒為單位,自 1970-01-01 00:00:00 UTC 起算)在 2038-01-19 03:14:07 後溢位的問題。

因為 32 位有符號整數的範圍是 -2,147,483,648 到 2,147,483,647,而 2038-01-19 03:14:07 UTC 的時間戳為 2,147,483,647,因此超過該時間點後,32 位有符號整數將無法表示後續的時間戳。

受影響的多為使用 32 位 time_t 的舊系統或軟體。現代系統通常使用 64 位(例如以毫秒為單位的 64 位整數),不存在此問題。

建議使用 64 位時間戳,或使用支援大日期範圍的時間函式庫。

如何透過程式語言獲取/轉換時間戳

JavaScript
獲取當前時間戳
Math.floor(Date.now() / 1000); // seconds
Date.now(); // milliseconds
時間戳 → 日期
new Date(1735689600 * 1000).toISOString();
日期 → 時間戳
new Date('2025-01-01T00:00:00Z').getTime();
PHP
獲取當前時間戳
time();                // seconds
intval(microtime(true) * 1000); // milliseconds
時間戳 → 日期
date('Y-m-d H:i:s', 1735689600);
日期 → 時間戳
strtotime('2025-01-01 00:00:00');
Python
獲取當前時間戳
import time

int(time.time())        # seconds
int(time.time() * 1000) # milliseconds
時間戳 → 日期
import datetime

datetime.datetime.utcfromtimestamp(1735689600).isoformat()
日期 → 時間戳
import datetime

int(datetime.datetime(2025,1,1,0,0,0,tzinfo=datetime.timezone.utc).timestamp())
Go
獲取當前時間戳
import "time"

time.Now().Unix()      // seconds
time.Now().UnixMilli() // milliseconds
時間戳 → 日期
import "time"

time.Unix(1735689600, 0).UTC().Format(time.RFC3339)
日期 → 時間戳
import "time"

ts := time.Date(2025,1,1,0,0,0,0,time.UTC).Unix()
Rust
獲取當前時間戳
use chrono::Utc;

let now = Utc::now();
let sec = now.timestamp();        // seconds i64
let ms  = now.timestamp_millis(); // milliseconds i128
時間戳 → 日期
use chrono::{DateTime, NaiveDateTime, Utc};

let dt: DateTime = NaiveDateTime::from_timestamp_opt(1735689600, 0)
    .unwrap()
    .and_utc();
let iso = dt.to_rfc3339();
日期 → 時間戳
use chrono::DateTime;

let ts = DateTime::parse_from_rfc3339("2025-01-01T00:00:00Z")
    .unwrap()
    .timestamp();
SQL
獲取當前時間戳
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP();

-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW())::bigint;

-- SQLite
SELECT strftime('%s', 'now');
時間戳 → 日期
-- MySQL / MariaDB
SELECT FROM_UNIXTIME(1735689600);

-- PostgreSQL
SELECT to_timestamp(1735689600) AT TIME ZONE 'UTC';

-- SQLite
SELECT datetime(1735689600, 'unixepoch');
日期 → 時間戳
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP('2025-01-01 00:00:00');

-- PostgreSQL
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2025-01-01 00:00:00+00')::bigint;

-- SQLite
SELECT strftime('%s', '2025-01-01 00:00:00');