Pythonでエポックタイムスタンプを取得する方法
Pythonでエポックタイムスタンプを扱う完全ガイド。time、datetime、calendarモジュールを使用してUnixタイムスタンプの取得、変換、フォーマットを行います。
Programming
詳細な説明
Pythonでのエポックタイムスタンプ
Pythonはエポックタイムスタンプを扱う複数のモジュール(time、datetime、calendar)を提供します。Pythonはネイティブエポックフォーマットとして秒(オプションの小数精度付き)を使用します。
現在のエポックの取得
import time
from datetime import datetime
# 小数精度付きの秒
time.time() # 1705312200.123456
# 整数秒
int(time.time()) # 1705312200
エポックからDatetimeへの変換
from datetime import datetime, timezone
# UTC datetimeへ(推奨)
dt_utc = datetime.fromtimestamp(1705312200, tz=timezone.utc)
# 文字列としてフォーマット
dt_utc.isoformat() # "2024-01-15T09:30:00+00:00"
DatetimeからEpochへの変換
from datetime import datetime, timezone
dt = datetime(2024, 1, 15, 9, 30, 0, tzinfo=timezone.utc)
epoch = int(dt.timestamp()) # 1705312200
重要:タイムゾーン対応
エポックとの変換時は常にタイムゾーン対応のdatetime(timezone.utc)を使用してください。ナイーブなdatetimeはローカル時間を前提としており、サーバーが異なるタイムゾーンで実行されている場合に微妙なバグを引き起こす可能性があります。
ユースケース
Unixタイムスタンプを扱うPythonのバックエンドサービス、データパイプライン、スクリプトを構築する際にこのリファレンスを使用してください。