Pythonでミリ秒を取得する方法について

Python,イメージ

AI実装検定のご案内

Pythonでミリ秒(milliseconds)を取得する方法は複数あります。

主に何の目的でミリ秒を取得したいかによって使い分けますが、ここでは時刻の取得経過時間の測定、およびUNIXタイムスタンプとしてのミリ秒取得などのシーンに分けて、詳しく解説します。

目次

現在時刻からミリ秒を取得(datetimeを使う)

datetime.datetime.now()を使うと、現在時刻を含む日時オブジェクトを取得できます。

from datetime import datetime

now = datetime.now()
print("現在時刻:", now)
print("ミリ秒:", now.microsecond // 1000)  # microsecondはマイクロ秒(μs)

解説

  • datetime.now()2025-06-06 11:23:45.123456 のような日時オブジェクト。
  • now.microsecond → マイクロ秒単位の値(例: 123456)
  • // 1000 → ミリ秒に変換(1000マイクロ秒 = 1ミリ秒)

UNIXタイムスタンプをミリ秒で取得(timeを使う)

UNIXエポック(1970年1月1日)からの経過時間をミリ秒単位で取得するには以下のようにします。

import time

# 秒単位でのタイムスタンプ
timestamp_sec = time.time()

# ミリ秒に変換
timestamp_millisec = int(timestamp_sec * 1000)

print("UNIXタイムスタンプ(秒):", timestamp_sec)
print("UNIXタイムスタンプ(ミリ秒):", timestamp_millisec)

解説

  • time.time() → 秒単位(小数点以下含む)
  • * 1000 でミリ秒に変換
  • int() で整数化することでミリ秒単位のUNIX時間が取得できる

経過時間を測定(高精度)→ time.perf_counter()

ミリ秒単位で経過時間を測りたいときは、time.perf_counter()が最適です。

import time

start = time.perf_counter()
time.sleep(1.234)  # 1.234秒だけ処理を止める
end = time.perf_counter()

elapsed_ms = (end - start) * 1000
print(f"経過時間: {elapsed_ms:.2f} ミリ秒")

解説

  • perf_counter() は非常に高精度なタイマー(ナノ秒単位まで対応)
  • 計測前後の差をとり、* 1000でミリ秒化
  • 精密なパフォーマンステストやベンチマークに最適

日時文字列にミリ秒を含めて表示(フォーマット)

datetimeオブジェクトからミリ秒を含んだ文字列を作りたい場合は、strftime()と補助的な処理を組み合わせます。

from datetime import datetime

now = datetime.now()
timestamp_str = now.strftime("%Y-%m-%d %H:%M:%S.") + f"{now.microsecond // 1000:03d}"
print("ミリ秒付きの時刻文字列:", timestamp_str)

出力例

ミリ秒付きの時刻文字列: 2025-06-06 11:23:45.123

Python 3.7以降限定:datetime.datetime.timestamp() を使ったミリ秒取得

from datetime import datetime

now = datetime.now()
timestamp_ms = int(now.timestamp() * 1000)
print("UNIXタイムスタンプ(ミリ秒):", timestamp_ms)

この方法はdatetimetimeの中間のような使い勝手で、特に「日時とミリ秒タイムスタンプを両方使いたい」ときに便利です。

まとめ

Python,イメージ
用途おすすめの方法補足
現在のミリ秒を知りたいdatetime.now().microsecond // 1000精度はマイクロ秒→ミリ秒換算
UNIX時間のミリ秒がほしいint(time.time() * 1000)epochベースでタイムスタンプ取得
経過時間を測りたいperf_counter()* 1000高精度
フォーマット付きの文字列がほしいstrftime() + microsecond処理ミリ秒まで表示可能

おまけ:Pythonのバージョン依存に注意

  • datetime.fromisoformat()datetime.timestamp()Python 3.7以降 で正式対応。
  • 高精度な時間処理をする場合は Python 3.6以上 推奨。

以上、Pythonでミリ秒を取得する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次