Pythonで日時を操作

今回はポンコツ2人組がPythonで日時操作をするプログラムに挑戦してみました! 日時の操作をするプログラムを書く機会は多いので、是非とも覚えておきましょう!

※この記事は2023/11/18時点の情報です。

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人組は今回の日時操作のプログラムを理解できたのでしょうか?

Pythonの日時操作のプログラムを覚えられましたか?

よく理解できなかった人は実際にプログラムを自分で書き、実行してみて理解を深めてみてください。 ポンコツ2人組は理解できているか非常に怪しいですね・・・

管理人情報