Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
datetime.datetime() / datetime.date() / datetime.time()
日時を扱うオブジェクトを生成する『datetime』モジュールの関数です。日付・時刻・日時をプログラムで操作する基本となります。
構文
from datetime import datetime, date, time # 日時オブジェクトを生成します。 dt = datetime(年, 月, 日, 時, 分, 秒) # 日付オブジェクトを生成します。 d = date(年, 月, 日) # 時刻オブジェクトを生成します。 t = time(時, 分, 秒) # 現在の日時を取得します。 now = datetime.now() # 今日の日付を取得します。 today = date.today()
関数一覧
| 関数 / メソッド | 概要 |
|---|---|
| datetime(年, 月, 日, 時, 分, 秒) | 指定した日時のdatetimeオブジェクトを生成します。時・分・秒は省略すると0になります。 |
| date(年, 月, 日) | 指定した日付のdateオブジェクトを生成します。 |
| time(時, 分, 秒) | 指定した時刻のtimeオブジェクトを生成します。 |
| datetime.now() | 現在のローカル日時のdatetimeオブジェクトを返します。 |
| datetime.utcnow() | 現在のUTC日時のdatetimeオブジェクトを返します。 |
| date.today() | 今日の日付のdateオブジェクトを返します。 |
| datetime.fromisoformat(文字列) | ISO 8601形式の文字列(例: 『2025-04-15T12:00:00』)からdatetimeオブジェクトを生成します。 |
サンプルコード
from datetime import datetime, date, time
# 現在の日時を取得します。
now = datetime.now()
print(now) # 例: 『2025-04-15 14:30:00.123456』と出力されます。
# 今日の日付だけを取得します。
today = date.today()
print(today) # 例: 『2025-04-15』と出力されます。
# 特定の日時を指定して生成します。
dt = datetime(2025, 4, 15, 9, 30, 0)
print(dt) # 『2025-04-15 09:30:00』と出力されます。
# 日付オブジェクトを生成します。
d = date(2025, 12, 31)
print(d) # 『2025-12-31』と出力されます。
print(d.year) # 『2025』と出力されます。
print(d.month) # 『12』と出力されます。
print(d.day) # 『31』と出力されます。
# 時刻オブジェクトを生成します。
t = time(23, 59, 59)
print(t) # 『23:59:59』と出力されます。
# datetimeオブジェクトの各属性にアクセスします。
dt2 = datetime.now()
print(dt2.year) # 年を取得します。
print(dt2.month) # 月を取得します。
print(dt2.weekday()) # 曜日を取得します(0=月曜〜6=日曜)。
# ISO形式の文字列からdatetimeを生成します。
dt3 = datetime.fromisoformat('2025-04-15T09:30:00')
print(dt3) # 『2025-04-15 09:30:00』と出力されます。
# datetimeをdateに変換します。
d2 = datetime.now().date()
print(type(d2)) # 『<class 'datetime.date'>』と出力されます。
概要
Pythonの『datetime』モジュールには複数のクラスが含まれます。『datetime.datetime』は日付と時刻の両方を持ち、『datetime.date』は日付のみ、『datetime.time』は時刻のみを持ちます。『from datetime import datetime』とインポートするとクラス名がモジュール名と同じになるため混乱することがありますが、これは慣習的な書き方です。
現在日時を取得する際、サーバーのタイムゾーン設定によって『datetime.now()』の返す時刻が変わることがあります。タイムゾーンを明示的に扱う必要がある場合は、Python 3.9以降は標準の『zoneinfo』モジュールを、それ以前は『pytz』ライブラリを使ってください。
日時の書式変換は『日時.strftime() / datetime.strptime()』を、期間の計算は『datetime.timedelta()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。