datetimeモジュールは日付と時刻に関する機能としてdatetime型(およびdate型とtime型)を提供する。 strftimeメソッドを用いて形式指定して文字列表現することができる。 逆にstrptimeメソッド用いて文字列をdatetimeオブジェクトに変換することができる。
from datetime import datetime
dt = datetime(2024, 1, 4, 19, 30, 25)
dt.year # 出力: 2024
dt.month # 出力: 1
dt.day # 出力: 4
dt.hour # 出力: 19
dt.minute # 出力: 30
dt.second # 出力: 25
dt.date() # 出力: datetime.date(2024, 1, 4)
dt.time() # 出力: datetime.time(19, 30, 25)
dt.replace(minute=0, second=0) # 出力: datetime.datetime(2024, 1, 4, 19, 0, 0)。統合解析時などの際の時刻合わせの例。
dt.strftime('%Y-%m-%d') # 出力: '2024-01-04'
datetime.strptime('2024-01-04', '%Y-%m-%d') # 出力: datetime.datetime(2024, 1, 4, 0, 0)
2つのdatetimeオブジェクトの差をとるとdatetime.timedelta型オブジェクトが得られる。
dt1 = datetime(2024, 1, 4, 9, 0) dt2 = datetime(2025, 1, 1, 0, 0) dt = dt2 - dt1 # dt: datetime.timedelta(days=362, seconds=54000) dt + dt1 # 出力: datetime.datetime(2025, 1, 1, 0, 0)
| %Y | 年(4桁表記)。 |
| %y | 年(2桁表記)。 |
| %m | 月(2桁表記)。 |
| %d | 日(2桁表記)。 |
| %H | 時(24時間表記)。 |
| %I | 時(12時間表記)。 |
| %M | 分(2桁表記)。 |
| %S | 秒(2桁表記)。 |
| %w | 曜日の数値表記 [0, 6] (日曜が0、土曜が6)。 |
| %U | 週番号(1年の内の何週目)。日曜を週初とする。 |
| %W | 週番号。月曜を週初とする。 |
| %z | UTCからのタイムゾーンのオフセット。+HHMMまたは-HHMM形式で表現される。 |
| %F | %Y-%m-%-dのショートカット。 |
| %D | %m/$d/$yのショートカット。 |