PythonでUNIXタイムスタンプを取得・変換する方法を完全ガイド!初心者向けに丁寧解説
生徒
「Pythonで時間を扱うときに“UNIXタイムスタンプ”ってよく見かけるんですが、いったい何なんですか?」
先生
「UNIXタイムスタンプは、1970年1月1日からの経過秒数のことだよ。Pythonではとてもよく使う大切な時間の表現方法なんだ。」
生徒
「どうやって取得したり、人間が読める日時に変換するんですか?」
先生
「Pythonには time.time() や datetime モジュールを使った方法があるから、一つずつ見ていこう。」
1. UNIXタイムスタンプとは?
UNIXタイムスタンプとは、「1970年1月1日午前0時(UTC)」から現在までの経過時間を秒で表した数字のことです。 コンピューターは時間を数字で扱う方が処理しやすいため、さまざまなプログラミング言語で使われています。 Pythonでも日時を管理したり、ログを記録したり、データベースに保存する場面で頻繁に登場します。 人間にとって読みにくい数字でも、コンピューターにとっては扱いやすい形式であり、 時差やフォーマットの違いに左右されずに管理できるという大きな利点があります。
また、UNIXタイムスタンプは「世界中で共通の時間のモノサシ」として扱えるため、 異なる国や異なるシステム間でデータをやり取りするときにも非常に便利です。
2. PythonでUNIXタイムスタンプを取得する(time.time)
PythonでUNIXタイムスタンプを取得する最も基本的な方法は、
time モジュールの time() 関数を使うことです。
この関数は「現在時刻をUNIXタイムスタンプとして返す」ための関数で、
実行するだけですぐに現在の秒数を手に入れることができます。
import time
timestamp = time.time()
print(timestamp)
実行すると、小数点付きの数値が表示されます。
1701234567.12345
この小数点以下の部分は「ミリ秒やマイクロ秒」の精度を持っているため、 より細かい時間を扱う必要がある場合にも役立ちます。
3. UNIXタイムスタンプを日時に変換する(datetime)
UNIXタイムスタンプは数字だけなので、そのままでは人間にとって分かりづらい時間表現です。
そこで Python の datetime モジュールを使い、
読みやすい「年・月・日・時刻」の形式に変換するのが一般的です。
import datetime
timestamp = 1701234567
dt = datetime.datetime.fromtimestamp(timestamp)
print(dt)
2023-11-29 14:22:47
fromtimestamp() を使うことで、UNIXタイムスタンプをローカル時間の datetime オブジェクトへ変換できます。
ログ分析や画面表示など、人が読みやすい形にするための基本的な方法です。
4. 日時からUNIXタイムスタンプへ変換する
時には、逆に「日時 → UNIXタイムスタンプ」に変換したい場合もあります。
例えばデータベースに保存したり、比較のために秒数にして扱いたいことがあります。
この場合は datetime オブジェクトの timestamp() メソッドを使います。
import datetime
dt = datetime.datetime(2023, 11, 1, 12, 0, 0)
timestamp = dt.timestamp()
print(timestamp)
1698817200.0
このように、日時を一度 datetime で表現し、
それを timestamp() によって数値に戻すことで、プログラム内で扱いやすい形式に変換できます。
5. よく使うUNIXタイムスタンプの活用例
UNIXタイムスタンプは、Python初心者から上級者まで多くの場面で利用されます。 たとえばログ記録の保存、ゲームのスコア管理、データベースの登録日時の管理、Webアプリのトークン生成、 時間差の計算など幅広い用途があります。特に「時間の計算を秒単位で行いたいとき」や、 「異なるシステム間で共通の時間形式を使いたい場合」にとても便利です。 また、UNIXタイムスタンプは数字なので比較処理にも強く、 「ある処理がどれくらい時間がかかったか」を計測する用途にも使われます。 Pythonの入門段階から覚えておくと、後の学習がとても楽になります。