Pythonのdatetime.strptimeで文字列を時刻に変換する

この記事では、Pythonで文字列を時刻に変換してみます。
datetime.strptimeの説明になります。

datetime.strftimeは、以下の記事を参考にしてください。

Pythonのdatetime.strftimeでdatetime型を文字列に変換する Pythonのdatetime.strftimeでdatetime型を文字列に変換する

datetime.strptimeを使う

datetime.strptimeは文字列をdatetime型に変換する関数です。

datetime.strptimeの仕様書です。

前準備

この記事ではPythonのサンプルコードを示します。
インポートするモジュールはこちらになります。

from datetime import datetime

シンプルな時刻

日付の文字列は、以下のように変換できます。

date_str = '2024/09/01'
print(date_str)
print(type(date_str))

# 2024/09/01
# <class 'str'>

d = datetime.strptime(date_str, '%Y/%m/%d')
print(d)
print(type(d))

# 2024-09-01 00:00:00
# <class 'datetime.datetime'>

date_str = '2024/9/1'
print(date_str)
print(type(date_str))

# 2024/9/1
# <class 'str'>

d = datetime.strptime(date_str, '%Y/%m/%d')
print(d)
print(type(d))

# 2024-09-01 00:00:00
# <class 'datetime.datetime'>

時刻付き文字列も変換できます。

date_str = '2024-09-01 12:34:56'
print(date_str)
print(type(date_str))

# 2024-09-01 12:34:56
# <class 'str'>

d = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
print(d)
print(type(d))

# 2024-09-01 12:34:56
# <class 'datetime.datetime'>

タイムゾーン付きの時刻

タイムゾーンのUTCオフセット部分のformatは%zで受けます。

utc_str = '2024-09-01 00:00:00+00:00'

# 文字列を時刻に変換する。
utc = datetime.strptime(utc_str, '%Y-%m-%d %H:%M:%S%z')
print(utc)
print(type(utc))

# 2024-09-01 00:00:00+00:00
# <class 'datetime.datetime'>

jst_str = '2024-09-01 00:00:00+09:00'

# 文字列を時刻に変換する。
jst = datetime.strptime(jst_str, '%Y-%m-%d %H:%M:%S%z')
print(jst)
print(type(jst))

# 2024-09-01 00:00:00+09:00
# <class 'datetime.datetime'>

マイクロ秒付きの時刻

マイクロ秒部分のformatは%fで受けます。

jst_str = '2024-09-01 20:00:00.123456+09:00'

jst = datetime.strptime(jst_str, '%Y-%m-%d %H:%M:%S.%f%z')
print(jst)
print(type(jst))

# 2024-09-01 20:00:00.123456+09:00
# <class 'datetime.datetime'>