PYTHON MEBY

Pythonで特定の日付・時刻を作成(datetime.datetime, datetime.date, datetime.time)

この記事では、Pythonのdatetimeモジュールを使って、特定の日付と時刻を作成する方法を解説します。datetime.datetime、datetime.date、datetime.timeオブジェクトの作成方法、そしてそれぞれのオブジェクトの属性へのアクセス方法を学びます。

目次

datetime.datetimeオブジェクトの作成

datetime.datetimeオブジェクトは、日付と時刻の両方を保持します。いくつかの方法で作成できます。

import datetime

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

# 特定の日付と時刻を指定して作成
specified_datetime = datetime.datetime(2024, 3, 15, 10, 30, 45)
print(specified_datetime)

# 文字列から作成(文字列の形式はparseメソッドに依存)
string_datetime = datetime.datetime.strptime('2024-03-15 10:30:45', '%Y-%m-%d %H:%M:%S')
print(string_datetime)

上記のように、now()メソッドで現在の日時を取得したり、引数で年、月、日、時、分、秒を指定してオブジェクトを作成したり、strptime()メソッドで文字列を解析してオブジェクトを作成したりできます。

出力例: 2024-03-15 10:30:45.123456 2024-03-15 10:30:45 2024-03-15 10:30:45

datetime.dateオブジェクトの作成

datetime.dateオブジェクトは、日付のみを保持します。

import datetime

# 特定の日付を指定して作成
date_obj = datetime.date(2024, 3, 15)
print(date_obj)

# datetime.datetimeオブジェクトから作成
date_from_datetime = now.date()
print(date_from_datetime)

datetime.datetimeオブジェクトからdate属性にアクセスすることで、日付のみを取り出すことができます。

datetime.timeオブジェクトの作成

datetime.timeオブジェクトは、時刻のみを保持します。

import datetime

# 特定の時刻を指定して作成
time_obj = datetime.time(10, 30, 45)
print(time_obj)

# datetime.datetimeオブジェクトから作成
time_from_datetime = now.time()
print(time_from_datetime)

datetime.datetimeオブジェクトからtime属性にアクセスすることで、時刻のみを取り出すことができます。

日付と時刻のフォーマット

strftime()メソッドを使うと、日付と時刻を様々なフォーマットで文字列に変換できます。

import datetime

formatted_datetime = now.strftime('%Y/%m/%d %H:%M:%S')
print(formatted_datetime)

出力例: 2024/03/15 10:30:45

タイムゾーンの考慮

タイムゾーンを扱うには、pytzモジュールを使うのが一般的です。(インストールが必要: pip install pytz)

import datetime
import pytz

# タイムゾーン付きのdatetimeオブジェクトを作成
tokyo_tz = pytz.timezone('Asia/Tokyo')
tokyo_now = tokyo_tz.localize(datetime.datetime.now())
print(tokyo_now)

pytzモジュールを使用することで、タイムゾーンを考慮した日付時刻の操作が可能になります。

関連記事