Pythonでエポックタイムスタンプを取得する方法

Pythonでエポックタイムスタンプを扱う完全ガイド。time、datetime、calendarモジュールを使用してUnixタイムスタンプの取得、変換、フォーマットを行います。

Programming

詳細な説明

Pythonでのエポックタイムスタンプ

Pythonはエポックタイムスタンプを扱う複数のモジュール(timedatetimecalendar)を提供します。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のバックエンドサービス、データパイプライン、スクリプトを構築する際にこのリファレンスを使用してください。

試してみる — Epoch Countdown

フルツールを開く