現在のUnix Timestampの取得方法
主要なプログラミング言語で現在のUnix timestampを取得する方法。JavaScript、Python、Bash、Java、Goのコード例付きクイックリファレンス。
Concept
time()
詳細な説明
現在のUnix timestampは、1970年1月1日 00:00:00 UTCからの経過秒数(またはミリ秒数)です。この値の取得は、ログ記録、キャッシュ、トークン生成、パフォーマンス計測など、プログラミングにおいて最も一般的な操作の一つです。
主要言語での取得方法:
// JavaScript (ミリ秒)
Date.now() // 1700000000000
Math.floor(Date.now() / 1000) // 秒
# Python (秒、浮動小数点)
import time
time.time() # 1700000000.123456
int(time.time()) # 秒、整数
# Bash / Shell
date +%s # 1700000000
// Java (ミリ秒)
System.currentTimeMillis() // 1700000000000L
Instant.now().getEpochSecond() // 秒
// Go (秒)
time.Now().Unix() // 1700000000
time.Now().UnixMilli() // ミリ秒
秒 vs. ミリ秒: 言語によってデフォルトの単位が異なることに注意してください。秒がデフォルトの言語(Python、Go、PHP、Bash)とミリ秒がデフォルトの言語(JavaScript、Java)があります。これを混同すると、日付が遥か未来になったり1970年と表示されたりするバグの原因になります。
クロックソースと精度: timestampを提供するシステムクロックはドリフトする可能性があります。分散システムでは、NTP(Network Time Protocol)を使用してクロックを同期させることを検討してください。複数サーバー間でのイベントの順序付けにはtimestampだけに頼ることは信頼性に欠けるため、ベクタークロックやハイブリッド論理クロックなどの手法がより適切な場合があります。
パフォーマンス計測の注意点: コードのベンチマークには、epoch timestampではなく、JavaScriptのperformance.now()やPythonのtime.perf_counter()などの高分解能タイマーを使用してください。サブミリ秒の精度を提供し、システムクロックの調整の影響を受けません。
ユースケース
現在のtimestampの取得は、キャッシュバスティングキーの生成、トークンの有効期限設定、アプリケーションログへのイベント発生時刻の記録に不可欠です。