Pythonで日時を操作
今回はポンコツ2人組がPythonで日時操作をするプログラムに挑戦してみました! 日時の操作をするプログラムを書く機会は多いので、是非とも覚えておきましょう!
1.日時の取得とフォーマット
from datetime import datetime
# 現在の日時を取得
now = datetime.now()
print("現在の日時:", now)
# 日時を特定のフォーマットに変換
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("フォーマットされた日時:", formatted_date)
処理結果は次の通りです。
フォーマットされた日時: 2023-11-18 22:33:15
2.日時の計算と操作
from datetime import datetime, timedelta
# 現在の日時を取得
now = datetime.now()
# 1日後の日時を計算
one_day_later = now + timedelta(days=1)
print("1日後の日時:", one_day_later)
# 1週間前の日時を計算
one_week_ago = now - timedelta(weeks=1)
print("1週間前の日時:", one_week_ago)
処理結果は次の通りです。
1日後の日時: 2023-11-19 22:34:18.328215
1週間前の日時: 2023-11-11 22:34:18.328215
3.文字列から日時に変換
from datetime import datetime
# 文字列から日時に変換
date_string = "2023-11-18 08:30:00"
date_object = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print("文字列から変換された日時:", date_object)
処理結果は次の通りです。
文字列から変換された日時: 2023-11-18 08:30:00
4.日時の差分を計算
from datetime import datetime
# 2つの日時の差分を計算
date_start = datetime(2023, 11, 1)
date_end = datetime(2023, 11, 18)
difference = date_end - date_start
print("日時の差分:", difference)
print("日数の差分:", difference.days) # 日数の差分のみを取得
処理結果は次の通りです。
日時の差分: 17 days, 0:00:00
日数の差分: 17
5.タイムゾーンを考慮した日時の取得
from datetime import datetime, timezone, timedelta
# UTCの現在の日時を取得
now_utc = datetime.now(timezone.utc)
print("UTCの現在の日時:", now_utc)
# タイムゾーンを考慮した特定の日時を取得
tz_offset = timedelta(hours=9) # 日本の場合のUTC+9
tokyo_time = now_utc + tz_offset
print("日本時間の現在の日時:", tokyo_time)
処理結果は次の通りです。
UTCの現在の日時: 2023-11-18 13:47:48.379288+00:00
日本時間の現在の日時: 2023-11-18 22:47:48.379288+00:00
6.日時の比較
from datetime import datetime
# 2つの日時を比較する
date1 = datetime(2023, 11, 15)
date2 = datetime(2023, 11, 18)
if date1 < date2:
print("date1 は date2 よりも前の日時です")
elif date1 > date2:
print("date1 は date2 よりも後の日時です")
else:
print("date1 と date2 は同じ日時です")
処理結果は次の通りです。
date1 は date2 よりも前の日時です
7.曜日の取得
from datetime import datetime
# 日時から曜日を取得する
date = datetime(2023, 11, 18)
day_of_week = date.strftime("%A")
print("曜日:", day_of_week)
処理結果は次の通りです。
曜日: Saturday
このサンプルでは、datetimeモジュールを使用して日時を取得してフォーマットを変更したり、
timedeltaを使用して日時の計算を行っています。
さて、ポンコツ2人組は今回の日時操作のプログラムを理解できたのでしょうか?
よく理解できなかった人は実際にプログラムを自分で書き、実行してみて理解を深めてみてください。 ポンコツ2人組は理解できているか非常に怪しいですね・・・