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オブジェクトに変換する方法、指定したフォーマットで日付を文字列に変換する方法、タイムゾーンを扱う方法について解説しました。これらを活用して、日付や時間を効率的に扱ってください。