Pythonは日付や時刻の処理を簡単に行える便利なプログラミング言語です。特に「datetime」「time」「calendar」などの標準ライブラリを使えば、現在時刻の取得から日時の計算、さらにはスケジュール管理まで、幅広いニーズに応えることができます。この記事では、Pythonでの時間処理の基本から応用までを、実際のコードとともにわかりやすく解説していきます。業務自動化や日付管理のツール開発を検討している方にも役立つ内容です。
Pythonで時間処理を行う際、まず覚えておきたいのがdatetime
モジュールです。日付と時刻の操作に最もよく使われます。
from datetime import datetime
# 現在の日時を取得
now = datetime.now()
print(now) # 2025-05-07 15:30:45.123456
このように、datetime.now()
を使えば、年・月・日・時・分・秒まで取得可能です。日付だけが必要な場合は.date()
、時刻だけが必要なら.time()
を使います。
print(now.date()) # 2025-05-07
print(now.time()) # 15:30:45.123456
ユーザーに日時をわかりやすく表示したい場合には、strftime
(format)を使って任意の形式に変換できます。
print(now.strftime("%Y/%m/%d %H:%M:%S")) # 2025/05/07 15:30:45
逆に、文字列を日時型に変換するにはstrptime
を使います。
dt = datetime.strptime("2025-05-07 14:00", "%Y-%m-%d %H:%M")
print(dt) # 2025-05-07 14:00:00
「1週間後」「3日前」など、日時の計算にはtimedelta
が役立ちます。
from datetime import timedelta
# 明日の日付
tomorrow = now + timedelta(days=1)
print(tomorrow)
# 1時間前
one_hour_ago = now - timedelta(hours=1)
print(one_hour_ago)
また、2つの日時の差も簡単に計算できます。
future = datetime(2025, 12, 31)
diff = future - now
print(diff.days) # あと何日か
time
モジュールは、処理の一時停止や処理時間の測定などに使います。
import time
start = time.time()
time.sleep(2) # 2秒停止
end = time.time()
print(f"処理時間: {end - start:.2f}秒") # 処理時間: 2.00秒
このように、time.sleep()
は待機処理を入れたいときに便利です。
スケジュールアプリや日程表を作成する際に使えるのがcalendar
モジュールです。
import calendar
# 2025年5月のカレンダーを出力
print(calendar.month(2025, 5))
曜日のインデックスや、うるう年の判定もできます。
print(calendar.weekday(2025, 5, 7)) # 2(=水曜日)
print(calendar.isleap(2024)) # True(2024年はうるう年)
UNIX時間(1970年1月1日からの経過秒数)はシステムや外部APIとの連携でよく使われます。
# datetime → UNIX時間
timestamp = now.timestamp()
print(timestamp)
# UNIX時間 → datetime
dt_from_ts = datetime.fromtimestamp(timestamp)
print(dt_from_ts)
このように相互変換も非常に簡単にできます。
Pythonはデフォルトでタイムゾーンが「なし(naive)」のため、pytz
などのライブラリを使って明示的に指定する必要があります。
import pytz
tokyo = pytz.timezone("Asia/Tokyo")
now_tokyo = datetime.now(tokyo)
print(now_tokyo) # タイムゾーン付きの日時
他国の時間に変換したり、UTCとの変換を行いたい場合にも役立ちます。
Pythonには日付・時間を扱うための強力な標準ライブラリが揃っており、シンプルな操作で高度な処理が可能です。以下のような使い分けを覚えておくと便利です。
業務システムの開発、スケジュール管理、ログの解析など、さまざまな場面で役立つPythonの時間処理。ぜひ、この記事のコード例を参考に、実際に手を動かしてみてください。