Pythonのdatetime
モジュールは、日付と時間を扱うための便利な機能を豊富に提供しています。
基本的な使い方から応用までを以下にまとめます。
datetimeの基本構造
datetime
モジュールは以下の主要なクラスで構成されています。
- datetime
日付と時間の両方を扱います。 - date
年、月、日を扱います。 - time
時、分、秒、マイクロ秒を扱います。 - timedelta
時間の差(期間)を扱います。
基本的な使用方法
日付と時間の取得
from datetime import datetime
# 現在の日付と時刻を取得
now = datetime.now()
print(now) # 例: 2024-11-05 14:45:30.000000
日付と時間の指定
from datetime import datetime
# 特定の日付と時間を指定して生成
specific_datetime = datetime(2024, 11, 5, 14, 45, 30)
print(specific_datetime) # 2024-11-05 14:45:30
日付のフォーマット変換
日付を文字列に変換(フォーマット指定)
from datetime import datetime
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # 例: 2024-11-05 14:45:30
主なフォーマット指定子は以下のとおりです。
%Y
:西暦年(4桁)%m
:月(01〜12)%d
:日(01〜31)%H
:時(24時間表記、00〜23)%M
:分(00〜59)%S
:秒(00〜59)
文字列を日付に変換
from datetime import datetime
date_str = "2024-11-05 14:45:30"
converted_date = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(converted_date) # 2024-11-05 14:45:30
日付と時間の計算
日付の差(timedelta)
from datetime import datetime, timedelta
now = datetime.now()
# 1週間後の日付を取得
next_week = now + timedelta(weeks=1)
print(next_week)
# 2日前の日付
two_days_ago = now - timedelta(days=2)
print(two_days_ago)
よく使われる便利な操作
日付のみや時刻のみの取得
# 日付のみ
print(now.date()) # 2024-11-05
# 時刻のみ
print(now.time()) # 14:45:30.000000
曜日を取得
# 曜日を数値(0=月曜日、6=日曜日)で取得
print(now.weekday()) # 例: 1(火曜日)
# 曜日を文字列で取得
days = ["月", "火", "水", "木", "金", "土", "日"]
print(days[now.weekday()]) # 火
年、月、日の抽出
print(now.year) # 2024
print(now.month) # 11
print(now.day) # 5
まとめ
datetime
モジュールは多くの時間処理を簡単にしてくれます。
日付計算やフォーマット変換、タイムゾーン操作などを使いこなすことで、効率的に日付と時間を操作できます。