PythonでUNIXタイムスタンプを取得・変換する方法!初心者でもわかるtime.time()の使い方
生徒
「Pythonで“今の時間”って数値で表す方法ってあるんですか?」
先生
「はい、time.time()という関数を使うと、“UNIXタイムスタンプ”という形式で今の時刻を数値で取得できますよ。」
生徒
「ユニックスタイムスタンプ?なんだか難しそうですね…」
先生
「大丈夫です!わかりやすく丁寧に説明していきますので、一緒に学んでいきましょう。」
1. UNIXタイムスタンプとは?基準点からの「秒数」で時間を表す仕組み
UNIX(ユニックス)タイムスタンプとは、「1970年1月1日 午前0時0分0秒(UTC)」を基準点として、そこから現在までに経過した合計秒数を数値で表したものです。この基準となる日時は「UNIXエポック(Epoch)」と呼ばれ、コンピューターが時間を計算する際のスタート地点となっています。
身近な例で例えると:
「2026年1月1日」を「20260101」と書くのではなく、「基準日から数えて1,767,225,600秒経過した時点」というように、たった一つの大きな数字で管理するイメージです。
なぜこんな面倒なことをするのかというと、コンピューターにとって「2026年1月30日 15時30分」という文字列よりも、「1769754600」という数値の方が、計算や並び替えを圧倒的に速く処理できるからです。たとえば、どちらが未来の時間かを比べる際も、数値の大小を比較するだけで済みます。
プログラミング未経験の方でも、まずは「世界共通の数字による時計」だと考えると分かりやすいでしょう。Pythonを使えば、この複雑に見える数字を、私たちが普段使っているカレンダー形式の日付に一瞬で変換することができます。
2. time.time()で現在のUNIXタイムスタンプを取得する方法
Pythonで「現在の時刻」をコンピュータが扱いやすい数値(UNIXタイムスタンプ)として取得するには、標準ライブラリのtimeモジュールにあるtime.time()関数を使用するのが最も一般的で簡単です。
プログラミング未経験の方でも、まずは以下の短いコードをコピー&ペーストして実行してみましょう。たった3行で、現在の正確な時刻を数値として表示できます。
import time
# 現在のUNIXタイムスタンプを取得して変数に代入
timestamp = time.time()
# 取得した値を画面に表示
print(timestamp)
実行結果の例:
1738212480.123456
実行すると、上記のような小数点が含まれた大きな数字が表示されます。これは、1970年1月1日 0時0分0秒(UTC)から現在までに経過した「秒数」を表しています。
なぜ小数点が含まれているのかというと、time.time()が「1秒未満の細かい時間(マイクロ秒)」まで精密に計測しているからです。システムログの記録や、処理にかかった時間の計算、キャッシュの有効期限の設定など、バックエンド開発の現場でも非常に多く使われる基本の関数です。まずは「この関数を使えば、いつでも正確な数字としての現在時刻が手に入る」と覚えておけば間違いありません。
3. タイムスタンプを日時に変換する方法(datetimeとの連携)
UNIXタイムスタンプは「1740000000」のような単なる数字の羅列であるため、そのままでは人間がパッと見て「何月何日の何時か」を判断するのは不可能です。システム開発やデータ分析の現場では、この数字を私たちが普段使っているカレンダー形式の日付に変換する作業が頻繁に発生します。
Pythonでこの変換を行うには、日付や時刻を専門に扱うdatetimeモジュールのfromtimestamp()という機能を使うのが最も一般的で簡単です。プログラミング初心者の方でも、以下の短いコードだけで変換できるので安心してください。
from datetime import datetime
import time
# 現在のUNIXタイムスタンプを取得
timestamp = time.time()
# タイムスタンプを人間が読める形式(日時オブジェクト)に変換
dt = datetime.fromtimestamp(timestamp)
print("変換前の数字:", timestamp)
print("変換後の日時:", dt)
変換前の数字: 1757047530.123456
変換後の日時: 2025-09-03 13:45:30.123456
このdatetime.fromtimestamp()を利用するメリットは、お使いのコンピュータのタイムゾーン(日本なら日本標準時)に合わせて自動的に計算してくれる点です。実行結果を見ると、見慣れた「年-月-日 時:分:秒」の形式になっていることがわかります。
ログファイルの解析や、データベースから取り出した数値を画面に表示する際など、ユーザーに優しい表示を目指すなら必須のテクニックです。まずはこの基本形を覚えて、いつでも変換できるようにしておきましょう。
4. 日付からUNIXタイムスタンプを取得する
逆に「日付(datetime型)からUNIXタイムスタンプを取得したい」ときは、timestamp()メソッドを使います。
from datetime import datetime
dt = datetime(2025, 9, 3, 0, 0, 0)
timestamp = dt.timestamp()
print(timestamp)
1756857600.0
このように、指定した日付や時間を、数値として表すことができます。これもUNIXタイムスタンプです。
5. UNIXタイムスタンプの用途とは?
UNIXタイムスタンプは、次のような場面でよく使われています。
- ファイルの更新日時を記録する
- 予約システムで日時の比較をする
- サーバーのログに時刻を残す
- ゲームのクールタイム(再利用時間)計算
このように、「時間の差」や「並び順」を正確に扱う必要がある場面で大活躍します。
6. タイムスタンプを整数にしたいとき(小数点を切り捨て)
time.time()の結果は小数を含みますが、整数だけ欲しいときはint()関数で切り捨てできます。
import time
timestamp = int(time.time())
print(timestamp)
1693734367
このようにすれば、小数点以下がない「きれいな整数」のUNIXタイムスタンプが得られます。
7. UNIXタイムスタンプの時間差を計算する
UNIXタイムスタンプは「秒数」なので、引き算すれば時間の差が簡単にわかります。
start = time.time()
# 処理をはさんで…
end = time.time()
print("処理時間は", end - start, "秒です")
処理時間は 1.2345 秒です
このように、処理時間を測ったり、何秒経過したかを調べるのにとても便利です。
8. UNIXタイムスタンプは世界共通の「時間のものさし」
UNIXタイムスタンプは、世界中のコンピューターやスマートフォン、サーバーで同じ基準を使っています。そのため、国や言語が違っても正確に時間を共有できるのです。
Pythonでもtime.time()を使えば、このグローバルな基準時間を簡単に扱うことができるため、初心者でもプロ並みに正確な時間処理ができます。