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)
この方法はdatetime
とtime
の中間のような使い勝手で、特に「日時とミリ秒タイムスタンプを両方使いたい」ときに便利です。
まとめ

用途 | おすすめの方法 | 補足 |
---|---|---|
現在のミリ秒を知りたい | 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でミリ秒を取得する方法についてでした。
最後までお読みいただき、ありがとうございました。