Pythonにおける日時処理の基本と実践的な使い方

Pythonで日時を扱う際には、主にdatetimetimeという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での日時処理に対する多くの要求に対応できます。

タグ: Python datetime time timezone pytz

7月14日 17:51 投稿