Pythonで日付を文字列に、文字列を日付に変換する方法

Pythonのdatetimeモジュールは、日付や時間を扱うための機能が豊富に用意されています。ここでは、日付を文字列に変換する方法、文字列を日付に変換する方法、日付と時間を含む文字列をdatetimeオブジェクトに変換する方法、指定したフォーマットで日付を文字列に変換する方法、タイムゾーンを扱う方法について解説します。

Pythonのdatetimeモジュールについて

Pythonのdatetimeモジュールは、日付や時間を扱うための機能が豊富に用意されています。datetimeモジュールには、dateオブジェクト、timeオブジェクト、datetimeオブジェクトがあります。それぞれ、日付、時間、日付と時間を扱うためのオブジェクトです。

日付を文字列に変換する方法

datetimeオブジェクトを文字列に変換するには、strftimeメソッドを使用します。strftimeメソッドは、datetimeオブジェクトを指定したフォーマットの文字列に変換します。

import datetime
dt = datetime.datetime(2021, 10, 1)
str_dt = dt.strftime('%Y/%m/%d')
print(str_dt) # 2021/10/01

上記の例では、datetimeオブジェクトを「%Y/%m/%d」のフォーマットに変換しています。

文字列を日付に変換する方法

文字列をdatetimeオブジェクトに変換するには、strptimeメソッドを使用します。strptimeメソッドは、文字列をdatetimeオブジェクトに変換します。

import datetime
str_dt = '2021-10-01'
dt = datetime.datetime.strptime(str_dt, '%Y-%m-%d')
print(dt) # 2021-10-01 00:00:00

上記の例では、文字列を「%Y-%m-%d」のフォーマットに変換しています。

日付と時間を含む文字列をdatetimeオブジェクトに変換する方法

日付と時間を含む文字列をdatetimeオブジェクトに変換するには、strptimeメソッドを使用します。strptimeメソッドは、文字列をdatetimeオブジェクトに変換します。

import datetime
str_dt = '2021-10-01 12:34:56'
dt = datetime.datetime.strptime(str_dt, '%Y-%m-%d %H:%M:%S')
print(dt) # 2021-10-01 12:34:56

上記の例では、文字列を「%Y-%m-%d %H:%M:%S」のフォーマットに変換しています。

指定したフォーマットで日付を文字列に変換する方法

datetimeオブジェクトを指定したフォーマットの文字列に変換するには、strftimeメソッドを使用します。strftimeメソッドは、datetimeオブジェクトを指定したフォーマットの文字列に変換します。

import datetime
dt = datetime.datetime(2021, 10, 1, 12, 34, 56)
str_dt = dt.strftime('%Y/%m/%d %H:%M:%S')
print(str_dt) # 2021/10/01 12:34:56

上記の例では、datetimeオブジェクトを「%Y/%m/%d %H:%M:%S」のフォーマットに変換しています。

タイムゾーンを扱う方法

Pythonのdatetimeモジュールでは、タイムゾーンを扱うための機能が用意されています。datetimeオブジェクトには、タイムゾーンを指定することができます。また、UTCとの変換も簡単に行うことができます。

import datetime
import pytz
# タイムゾーンを指定してdatetimeオブジェクトを作成
dt = datetime.datetime(2021, 10, 1, 12, 34, 56, tzinfo=pytz.timezone('Asia/Tokyo'))
print(dt) # 2021-10-01 12:34:56+09:00
# UTCに変換
utc_dt = dt.astimezone(pytz.utc)
print(utc_dt) # 2021-10-01 03:34:56+00:00

上記の例では、datetimeオブジェクトに「Asia/Tokyo」のタイムゾーンを指定しています。また、UTCに変換するためにastimezoneメソッドを使用しています。

まとめ

Pythonのdatetimeモジュールを使用することで、日付や時間を簡単に扱うことができます。日付を文字列に変換する方法、文字列を日付に変換する方法、日付と時間を含む文字列をdatetimeオブジェクトに変換する方法、指定したフォーマットで日付を文字列に変換する方法、タイムゾーンを扱う方法について解説しました。これらを活用して、日付や時間を効率的に扱ってください。