【Python】datetimeモジュールについて【標準ライブラリ】

【Python】datetimeモジュールについて【標準ライブラリ】

このページでは、Pythonの標準ライブラリ「datetimeモジュール」について、詳細に解説します。datetimeモジュールは、日付や時間の操作を行うための強力なツールを提供しており、さまざまな用途に利用できます。

datetimeオブジェクト

datetimeオブジェクトは、日付と時間の両方を扱うためのクラスです。日付と時間を組み合わせた情報を保持します。

from datetime import datetime

# 現在の日付と時刻を取得
now = datetime.now()
print(now)
    

上記のコードは、現在の日時(年月日、時分秒)を取得して表示します。例えば、出力は「2025-01-31 14:30:45.123456」のようになります。

dateオブジェクト

dateオブジェクトは、日付のみを扱うためのクラスです。年月日を保持し、時間に関する情報は含みません。

from datetime import date

# 現在の日付を取得
today = date.today()
print(today)
    

出力例:「2025-01-31」

また、dateオブジェクトでは年、月、日を個別に取得することもできます。

year = today.year
month = today.month
day = today.day
print(year, month, day)
    

出力例:「2025 1 31」

timeオブジェクト

timeオブジェクトは、時刻のみを扱うためのクラスです。時分秒を保持しますが、日付に関する情報は含みません。

from datetime import time

# 時刻を設定
t = time(14, 30, 45)
print(t)
    

出力例:「14:30:45」

timeオブジェクトでは、時、分、秒、マイクロ秒を個別に取得することも可能です。

hour = t.hour
minute = t.minute
second = t.second
microsecond = t.microsecond
print(hour, minute, second, microsecond)
    

出力例:「14 30 45 0」

timedeltaオブジェクト

timedeltaオブジェクトは、日付や時間の差を表現するために使用します。例えば、2つの日付の差や、時間の加算・減算に利用されます。

from datetime import timedelta

# 5日間のtimedeltaを作成
delta = timedelta(days=5)
print(delta)
    

出力例:「5 days, 0:00:00」

timedeltaオブジェクトを使って日付の加算や減算を行うこともできます。

from datetime import datetime

# 現在の日付を取得
now = datetime.now()

# 3日後の日付を計算
new_date = now + timedelta(days=3)
print(new_date)
    

出力例:「2025-02-03 14:30:45.123456」

datetimeの操作

datetimeオブジェクトには、さまざまな操作を行うメソッドが用意されています。主に日付や時間の演算や変換が可能です。

from datetime import datetime

# 現在の日付を取得
now = datetime.now()

# 年、月、日、時、分、秒を個別に取得
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second

print(year, month, day, hour, minute, second)
    

出力例:「2025 1 31 14 30 45」

datetimeのフォーマット

datetimeオブジェクトは、strftime()メソッドを使用して、さまざまなフォーマットで表示できます。フォーマット指定子を使うことで、任意の形式で日付や時刻を表示することができます。

from datetime import datetime

# 現在の日付を取得
now = datetime.now()

# フォーマットを指定して表示
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)
    

出力例:「2025-01-31 14:30:45」

使用できるフォーマット指定子には以下のようなものがあります。

  • %Y: 4桁の年
  • %m: 2桁の月(01〜12)
  • %d: 2桁の日(01〜31)
  • %H: 2桁の時(00〜23)
  • %M: 2桁の分(00〜59)
  • %S: 2桁の秒(00〜59)

datetimeの比較

datetimeオブジェクト同士は比較演算子(<, <=, >, >=, ==, !=)を使用して比較できます。

from datetime import datetime

# 2つのdatetimeオブジェクトを作成
now = datetime.now()
later = now + timedelta(days=1)

# 比較
print(now < later)  # True
print(now == later)  # False
    

出力例:

  • True
  • False

datetimeのその他のメソッド

datetimeオブジェクトには、他にも便利なメソッドがいくつかあります。例えば、now()メソッドやtoday()メソッドを使って現在の日付や時刻を取得したり、fromtimestamp()メソッドを使ってUnixタイムスタンプから日付を取得したりできます。

from datetime import datetime

# Unixタイムスタンプをdatetimeに変換
timestamp = 1622520000  # 2021-06-01 00:00:00 UTC
dt = datetime.fromtimestamp(timestamp)
print(dt)
    

出力例:「2021-06-01 09:00:00」

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です