技術系TIPS
PR

Pythonのエポックミリ秒入門|取得・変換コードと注意点

saratogax
記事内に商品プロモーションを含む場合があります

エポックミリ秒は、UNIX時間(1970年1月1日 00:00:00 UTCからの経過時間)をミリ秒単位で表したもの。

ログやAPIのタイムスタンプ、IoTデータなどで広く利用されており、エンジニアなら一度は触れる形式でしょう。

ここではPythonでの取得・変換方法を、すぐ使えるサンプルとあわせて紹介します。

「エポックミリ秒」から「日時」への変換ツールも作ってみましたので、興味のある方は使ってみてください。

あわせて読みたい
エポックミリ秒⇔日時変換ツール|JavaScript・Excelでの使い方も解説
エポックミリ秒⇔日時変換ツール|JavaScript・Excelでの使い方も解説
PR

エポックミリ秒とは?

エポックミリ秒は、UNIX時間をミリ秒単位で表現した形式です。

秒単位のUNIX時間より1000倍の精度を持ち、リアルタイム性の高い処理に適しています。

例えば以下のような用途で見かけることが多いでしょう。

  • ログ解析での詳細な発生時刻の記録
  • API通信時の精密な時刻同期
  • IoTデバイスによる時刻付きデータ送信

ミリ秒単位で管理することで、時刻の衝突や曖昧さを減らすことができます。

現在時刻をミリ秒で取得する

Pythonでは、time.time()を使ってUNIX時間を取得し、1000倍すればミリ秒になります。

import time
ms = int(time.time() * 1000)
print(ms)  # 例: 1723812345678

この方法はシンプルで高速ですが、値はシステムクロック依存。

より精度が必要な場面では、time.time_ns()からナノ秒を取得し、整数除算でミリ秒に変換すると良いでしょう。

ミリ秒から日付へ変換する

取得したミリ秒を人間が読める形に直すには、秒単位に変換してdatetimeモジュールを利用します。

import datetime
ms = 1692105600000
dt = datetime.datetime.fromtimestamp(ms / 1000)
print(dt)  # 2023-08-15 09:00:00

fromtimestamp()はローカル時刻を返します。

UTCが必要な場合はutcfromtimestamp()を選びましょう。

タイムゾーンを意識するなら、pytzzoneinfoモジュールの併用が安全です。

日付からミリ秒へ変換する

特定の日付をミリ秒に変える場合はtimestamp()が便利です。

import datetime
dt = datetime.datetime(2025, 8, 16, 12, 0, 0)
ms = int(dt.timestamp() * 1000)
print(ms)  # 1755336000000

ただし、タイムゾーンを持たないdatetimeはローカル時間で計算されます。

UTC基準での計算が必要なら、必ずタイムゾーン付きのオブジェクトを用意しましょう。

よくあるミスと対策

エポックミリ秒を扱う上で特に多いのが、秒とミリ秒の取り違えです。

10桁なら秒、13桁ならミリ秒と覚えると間違いを減らせます。

また、以下の点にも注意しましょう。

  • ローカル時刻とUTC時刻の差を考慮する
  • API仕様で単位を必ず確認する
  • 単位変換時の桁数を検証する
項目秒(Epoch Seconds)ミリ秒(Epoch Milliseconds)
桁数の目安10桁(例: 1723800000)13桁(例: 1723800000000)
単位ミリ秒(1秒=1000ミリ秒)
精度1秒単位1ミリ秒単位
主な用途多くのUNIX系システム、古いAPIJavaScriptのDate、精密なログ記録
Pythonでの取得例int(time.time())int(time.time() * 1000)
変換の注意点ミリ秒に変換するには ×1000秒に変換するには ÷1000
※表は横スクロールできます

体験談:単位の取り違えで発生した不具合

過去にAPI連携で、秒単位の値をミリ秒と誤解して処理したことがあります。

結果、本来は2023年のデータが1970年付近として表示される事態に。

原因は桁数チェックを省略したためで、以降は処理前に必ず単位を判別する仕組みを追加しました。

まとめ

Pythonでエポックミリ秒を扱う際は、単位やタイムゾーンの違いを意識することが大切です。

今回のサンプルを押さえておけば、ログ解析やAPI開発など幅広い場面で活用できるでしょう。

PR
ABOUT ME
saratoga
saratoga
フリーランスエンジニア
仕事にも趣味にも IT を駆使するフリーランスエンジニア。技術的な TIPS や日々の生活の中で深堀りしてみたくなったことを備忘録として残していきます。
記事URLをコピーしました