Pythonで日付時刻を扱う方法
基本的な使い方
datetime.strptime()
は、Python の標準モジュールである datetime
モジュールの関数の一つです。この関数は、指定された文字列に基づいて、 datetime
オブジェクトを作成します。strptime()
の名前は “string parse time” の略で、文字列を解析して日付時刻オブジェクトを作成するために使われます。
以下は、datetime.strptime()
の使い方の例です。
from datetime import datetime
# 日付文字列を datetime オブジェクトに変換する
date_str = '2022-01-01'
date_obj = datetime.strptime(date_str, '%Y-%m-%d')
print(date_obj)
# 出力結果: 2022-01-01 00:00:00
# 日付と時刻の文字列を datetime オブジェクトに変換する
datetime_str = '2022-01-01 12:34:56'
datetime_obj = datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S')
print(datetime_obj)
# 出力結果: 2022-01-01 12:34:56
datetime.strptime()
は、2つの引数を取ります。1つ目の引数は、日付時刻を表す文字列であり、2つ目の引数は、文字列のフォーマットを指定する文字列です。フォーマット文字列には、日付時刻を表す各要素に対応するプレースホルダーがあります。たとえば、%Y
は、4桁の年を表すプレースホルダーであり、%m
は、2桁の月を表すプレースホルダーです。
datetime.strptime()
を使うことで、Python で日付時刻を扱う上で非常に便利になります。
いろんなパターン
datetime.strptime()
関数は、文字列を日付時刻オブジェクトに変換するために使用されます。次の例では、異なるフォーマットの日付時刻文字列を使用して、 datetime.strptime()
の使用方法を示します。
from datetime import datetime
# 日付の文字列を datetime オブジェクトに変換する
date_str1 = '2022-07-12'
date_obj1 = datetime.strptime(date_str1, '%Y-%m-%d')
print(date_obj1)
date_str2 = '2022/07/12'
date_obj2 = datetime.strptime(date_str2, '%Y/%m/%d')
print(date_obj2)
date_str3 = '12-July-22'
date_obj3 = datetime.strptime(date_str3, '%d-%B-%y')
print(date_obj3)
# 時刻の文字列を datetime オブジェクトに変換する
time_str1 = '13:45:30'
time_obj1 = datetime.strptime(time_str1, '%H:%M:%S')
print(time_obj1)
time_str2 = '01:45 PM'
time_obj2 = datetime.strptime(time_str2, '%I:%M %p')
print(time_obj2)
# 日付時刻の文字列を datetime オブジェクトに変換する
datetime_str1 = '2022-07-12 13:45:30'
datetime_obj1 = datetime.strptime(datetime_str1, '%Y-%m-%d %H:%M:%S')
print(datetime_obj1)
datetime_str2 = '12-July-22 01:45 PM'
datetime_obj2 = datetime.strptime(datetime_str2, '%d-%B-%y %I:%M %p')
print(datetime_obj2)
上記の例では、strptime()
の2番目の引数にフォーマット指定子を指定することで、指定された日付時刻文字列を正確に解析し、日付時刻オブジェクトを作成することができました。
strptime()
で使用できるフォーマット指定子は以下の通りです。
フォーマット指定子 | 説明 |
---|---|
%Y | 4桁の年 |
%y | 2桁の年 |
%m | 2桁の月 |
%B | 月の名称(完全な名前) |
%b | 月の名称(短縮形) |
%d | 2桁の日 |
%j | 年間通算日 |
%H | 24時間形式の時 |
%I | 12時間形式の時 |
%M | 2桁の分 |
%S | 2桁の秒 |
%p | AM/PM |
%f | マイクロ秒 |
%z | UTC オフセット |
%Z | タイムゾーンの名前 |
strptime()
関数は、日付時刻のフォーマットを指定できるため、様々な形式の日付時刻を解析することができます。