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()関数を呼び出します。
import time
timestamp = time.time()
print(timestamp)
1693734367.123456
このように、小数点以下も含まれた秒数が表示されます。これは「今この瞬間のUNIX時間」を意味しています。
3. タイムスタンプを日時に変換する方法(datetimeとの連携)
UNIXタイムスタンプは数字だけでは人間には読みにくいため、日付や時刻に変換したいことがあります。そんなときはdatetimeモジュールのfromtimestamp()を使いましょう。
from datetime import datetime
import time
timestamp = time.time()
dt = datetime.fromtimestamp(timestamp)
print(dt)
2025-09-03 13:45:30.123456
datetime.fromtimestamp()を使うことで、UNIXタイムスタンプを日本人にもなじみのある「年月日 時分秒」の形式に変換できます。
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()を使えば、このグローバルな基準時間を簡単に扱うことができるため、初心者でもプロ並みに正確な時間処理ができます。