Pythonで日時を扱う際には、主にdatetimeとtimeという2つの標準ライブラリが利用されます。それぞれ異なる用途に適しており、効果的に組み合わせて使用することが重要です。
datetimeモジュールの基本操作
現在の日時情報を取得するには以下のように記述します:
from datetime import datetime
current_moment = datetime.now()
print("現在の日時:", current_moment)
特定の日付を指定してオブジェクトを作成する場合:
from datetime import datetime
target_datetime = datetime(2024, 8, 20, 14, 45, 30)
print("指定した日時:", target_datetime)
日時の書式変換
表示形式をカスタマイズするためのコード例:
from datetime import datetime
current_time = datetime.now()
display_format = current_time.strftime("%Y年%m月%d日 %H時%M分%S秒")
print("整形された日時:", display_format)
よく使われるフォーマット指定子:
- %Y - 4桁の西暦年
- %m - 2桁の月(01〜12)
- %d - 2桁の日(01〜31)
- %H - 24時間制の時(00〜23)
- %M - 分(00〜59)
- %S - 秒(00〜59)
文字列からの日時解析
文字列形式の日時データをオブジェクトに変換:
from datetime import datetime
datetime_text = "2024-08-20 14:45:30"
converted_datetime = datetime.strptime(datetime_text, "%Y-%m-%d %H:%M:%S")
print("変換後の日時:", converted_datetime)
日時の演算処理
時間差の計算を行うサンプル:
from datetime import datetime, timedelta
present_time = datetime.now()
future_time = present_time + timedelta(days=7)
print("1週間後:", future_time)
past_time = present_time - timedelta(hours=24)
print("24時間前:", past_time)
timeモジュールの利用方法
エポックタイムからの経過秒数を取得:
import time
epoch_seconds = time.time()
print("タイムスタンプ値:", epoch_seconds)
システムのローカル時間を取得:
import time
local_info = time.localtime()
print("ローカル時間情報:", local_info)
readable_format = time.strftime("%Y-%m-%d %H:%M:%S", local_info)
print("読みやすい形式:", readable_format)
待機処理の実装
指定時間だけプログラムを停止:
import time
print("3秒間待機中...")
time.sleep(3)
print("再開しました!")
タイムゾーン対応処理
複数タイムゾーンを扱う場合はpytzライブラリの導入を推奨します。
インストールコマンド:
pip install pytz
タイムゾーン変換の実装:
from datetime import datetime
import pytz
utc_zone = pytz.UTC
utc_current = datetime.now(utc_zone)
print("UTCでの現在時刻:", utc_current)
japan_zone = pytz.timezone('Asia/Tokyo')
japan_time = utc_current.astimezone(japan_zone)
print("日本時間:", japan_time)
これらの手法を組み合わせることで、Pythonでの日時処理に対する多くの要求に対応できます。