專業的時間戳轉換工具,支援多時區精確轉換
程式開發、系統管理、資料分析必備工具
// 獲取當前時間戳(毫秒) const timestamp = Date.now(); console.log(timestamp); // 1672531200000 // 獲取當前時間戳(秒) const timestampSeconds = Math.floor(Date.now() / 1000); console.log(timestampSeconds); // 1672531200
// 時間戳轉日期
const timestamp = 1672531200;
const date = new Date(timestamp * 1000);
console.log(date.toLocaleString()); // "2023/1/1 上午8:00:00"
// 日期轉時間戳
const date = new Date('2023-01-01T00:00:00.000Z');
const timestamp = Math.floor(date.getTime() / 1000);
console.log(timestamp); // 1672531200
import time from datetime import datetime # 獲取當前時間戳(秒) timestamp = int(time.time()) print(timestamp) # 1672531200 # 獲取當前時間戳(毫秒) timestamp_ms = int(time.time() * 1000) print(timestamp_ms) # 1672531200000
# 時間戳轉日期
timestamp = 1672531200
dt = datetime.fromtimestamp(timestamp)
print(dt.strftime('%Y-%m-%d %H:%M:%S')) # "2023-01-01 08:00:00"
# 日期轉時間戳
dt = datetime(2023, 1, 1, 0, 0, 0)
timestamp = int(dt.timestamp())
print(timestamp) # 1672531200
-- MySQL
SELECT UNIX_TIMESTAMP() as current_timestamp;
SELECT FROM_UNIXTIME(1672531200) as datetime_from_timestamp;
SELECT UNIX_TIMESTAMP('2023-01-01 00:00:00') as timestamp_from_datetime;
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW()) as current_timestamp;
SELECT TO_TIMESTAMP(1672531200) as datetime_from_timestamp;
SELECT EXTRACT(EPOCH FROM '2023-01-01 00:00:00'::timestamp) as timestamp_from_datetime;
<?php
// 獲取當前時間戳
$timestamp = time();
echo $timestamp; // 1672531200
// 時間戳轉日期
$timestamp = 1672531200;
$date = date('Y-m-d H:i:s', $timestamp);
echo $date; // "2023-01-01 08:00:00"
// 日期轉時間戳
$timestamp = strtotime('2023-01-01 00:00:00');
echo $timestamp; // 1672531200
?>
import java.time.*;
import java.time.format.DateTimeFormatter;
// 獲取當前時間戳(秒)
long timestamp = Instant.now().getEpochSecond();
System.out.println(timestamp); // 1672531200
// 時間戳轉日期
Instant instant = Instant.ofEpochSecond(1672531200);
LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println(dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
// 日期轉時間戳
LocalDateTime dateTime = LocalDateTime.of(2023, 1, 1, 0, 0, 0);
long timestamp = dateTime.toEpochSecond(ZoneOffset.UTC);
System.out.println(timestamp); // 1672531200
Unix時間戳(Unix Timestamp)也稱為Epoch時間或POSIX時間,是計算機科學中一個重要的時間表示標準。它定義為從1970年1月1日00:00:00 UTC開始到現在經過的總秒數,這個起始時間點被稱為「Unix紀元」(Unix Epoch)。這個看似簡單的概念,實際上解決了計算機系統中時間同步和跨平台時間表示的重大技術難題。
這個日期的選擇並非偶然。1970年是Unix作業系統在貝爾實驗室開發完成的年份,當時的工程師們需要一個統一的時間基準。選擇1970年1月1日午夜UTC作為起點,既避免了歷史上複雜的曆法轉換問題,又提供了一個現代計算機時代的清晰起始點。這個決定最終成為了整個計算機工業的標準,影響了無數後續系統的設計。
Unix時間戳採用簡單的整數表示,這種設計帶來了巨大的技術優勢:首先是儲存效率高,只需4個位元組(32位)或8個位元組(64位);其次是計算簡便,時間間隔計算只需簡單的減法;最重要的是跨平台一致性,不受地域、語言、時區影響。這種「大道至簡」的設計哲學體現了Unix系統一貫的優雅與實用主義。
今天,Unix時間戳廣泛應用於資料庫系統、API介面、日誌記錄、區塊鏈等領域。然而,32位時間戳將在2038年1月19日溢出(著名的「千年蟲問題2.0」),屆時需要升級到64位系統。JavaScript使用毫秒級時間戳,而某些高頻交易系統甚至需要納秒級精度。這些演進反映了現代應用對時間精度不斷提高的需求。
系統日誌、用戶活動記錄、一般應用程式
前端開發、API響應時間、即時通訊
高頻交易、科學計算、網路延遲測量
量子通訊、GPS系統、粒子物理實驗
隨著量子計算、物聯網、邊緣計算等技術的發展,時間同步精度要求越來越高。未來可能需要考慮相對論效應對時間的影響、分散式系統的時間一致性問題,以及新的時間標準協議。IEEE 1588精確時間協議(PTP)已經能夠達到亞微秒級精度,而光原子鐘的發展更是將時間精度推向了前所未有的高度。這些進展將為下一代計算系統奠定更加精確的時間基礎。