CodeGym /コース /Python SELF JA /datetimeモジュールの使い方

datetimeモジュールの使い方

Python SELF JA
レベル 39 , レッスン 1
使用可能

1. 現在の日付と時間を取得する

なぜ必要なのか?

ご存じの通り、時間はお金です。そしてプログラミングでは、時間はコントロール、計画、そして自動化を意味します。 例えば、特定の時間にタスクを実行したり、イベントを記録したりする場合、時が刻まれていることを知り、それとどう対話するかを理解する必要があります。

datetimeの基礎

では、datetimeライブラリの使用を始めるとします。宇宙船の設計とは違い、これはとても簡単ですよ!現在の日付と時間を取得することから始めましょう:

Python

from datetime import datetime

# 現在の日付と時間を取得
now = datetime.now()
print("現在の日付と時間:", now)

このコードは「ねえ、datetime、今何時か教えて!」と言っているようなものです。そしてすごいことに、 now()は現在の時刻に関するすべての情報を含むdatetimeオブジェクトを返します。そう、まるで何でも知っている教授のように。

ローカル時間とUTC時間

ああ、UTC(協定世界時)— 時間帯の違いを抜きに、私たち全員を統一する時間。火星の正確な時間を知りたい場合(まあ、ほぼ正確)、UTCがぴったりです。では、どうやって取得するか見てみましょう:

Python

# UTCフォーマットで現在の時間を取得
now_utc = datetime.utcnow()
print("現在の日付と時間 (UTC):", now_utc)

「違いは?」と聞きたくなるかもしれません。ローカル時間はあなたのタイムゾーンを考慮しますが、UTCは地理的な場所に関係なく、グリニッジ標準時を基準にしています。

日付と時間の要素を抽出する

時々、日付全体ではなくその一部だけが必要になることがあります。これはピザを注文してチーズだけを取るようなものです。いつも理にかなっているわけではありませんが、時には必要です:

Python

# 日付と時間の個別要素を抽出
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second

print(f"現在は{hour}:{minute}:{second} {day}.{month}.{year}")

このようにして、誕生日に同僚を祝う(ただし彼自身が思い出さない限り)、など特定の日付と時間の要素で個別に作業できます。

現在の日付と時間の使用例

別の話ですが、例えば異なる時間帯で発生するイベントをプログラムする必要がある場合があります。 例えば、最も簡単なスクリプトを作って金曜日を祝うことにしましょう(金曜日が嫌いな人なんている?)。

Python

# 現在の日付を使った日々のリマインダー例
if now.weekday() == 4:  # 金曜日
    print("やった!今日は金曜日、休む時間だ!")
else:
    print("もう少し待って、金曜日はまだだよ。")

このコードはweekday()メソッドを使用して、今が何曜日か確認します(0が月曜日、6が日曜日)そしてもうすぐ訪れる週末の準備を警告します。

2. datetimeオブジェクトを使う

現在の時間だけでなく、ある時点から別の時点への操作や比較も知る必要があります。 例えば、同僚たちとの会議にどれほど遅刻したかを計算するにはどうしますか?

Python

# 時間の差を計算する例
from datetime import timedelta

# 過去の日付を作成
past_date = datetime(2023, 1, 1, 10, 0, 0)

# 現在の時間との違いを計算
difference = now - past_date
print(f"その記念日からは{difference.days}日と{difference.seconds // 3600}時間が過ぎました。")

ここでは過去の日付を作成し、現在との比較を行っています。新年から何日経ちましたか?これでわかります!

3. タイムゾーンの操作

datetimeでタイムゾーンを操作するためには、pytzライブラリを使用します。 これにより、日付と時間を必要なタイムゾーンに変換できます。

pytzの使用例

Python

from datetime import datetime
import pytz

# 現在のUTC日付と時間を取得
utc_now = datetime.now(pytz.utc)
print("現在の日付と時間 (UTC):", utc_now)

# 別のタイムゾーンに変換(例: US/Pacific)
pacific_now = utc_now.astimezone(pytz.timezone("US/Pacific"))
print("現在の日付と時間 (Pacific Time):", pacific_now)

出力:


現在の日付と時間 (UTC): 2024-11-04 14:53:27.123456+00:00
現在の日付と時間 (Pacific Time): 2024-11-04 06:53:27.123456-08:00
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION