Pythonの文字列と日付型「datetime」の変換について。
この記事の内容はコチラです
- Pythonでdatetime型に変換する
- 文字列型→日付型に変換する
今回は、Pythonで文字列から日付型「datetime」 に変換する方法を解説します。
文字列を日付型datetimeに変換する方法
Pythonで文字列を日付に変換する方法をいくつかのパターンにわけて解説します。
区切り文字なしの文字列をdatetimeに変換
import datetime str = '20230501' dte = datetime.datetime.strptime(str, '%Y%m%d') print(dte) #[結果] 2023-05-01 00:00:00
ここでは日付文字列の区切り文字なし「20230501」のパターンを日付型「datetime」へ変換しました。
文字列を「datetime」に変換するには、「datetime」の「strptime」を使います。第一引数に変換したい文字列、第2引数に変換後のフォーマット「%Y%m%d」を指定します。
「Y」は西暦4桁なので大文字、「m」「d」は小文字なので注意してください。
日付フォーマット
日付を指定するフォーマットはこちらです。
書式 | 説明 |
%Y | 年 西暦4桁(例、2021) |
%y | 年 西暦2桁(例、21) |
%m | 月2桁(例、12) |
%d | 日2桁(例、31) |
%H | 時 24時間表記(例、14) |
%I | 時 12時間表記(例、02) |
%p | AM、PM |
%M | 分2桁 |
%S | 秒2桁 |
%f | マイクロ秒6桁 |
スラッシュ「/」つきの文字列をdatetimeに変換
import datetime str = '2023/05/01' dte = datetime.datetime.strptime(str, '%Y/%m/%d') print(dte) #[結果] 2023-05-01 00:00:00
ここでは日付文字列でスラッシュ区切りの「2023/05/01」のパターンを「datetime」へ変換しました。
第2引数の変換後のフォーマットにスラッシュを入れて「%Y/%m/%d」とすると変換できます。
ハイフン「-」つきの文字列をdatetimeに変換
import datetime str = '2023-05-01' dte = datetime.datetime.strptime(str, '%Y-%m-%d') print(dte) #[結果] 2023-05-01 00:00:00
ここでは日付文字列でハイフン区切りの「2023-05-01」のパターンを「datetime」へ変換しました。
第2引数の変換後のフォーマットにハイフンを入れて「%Y-%m-%d」とすると変換できます。
日付+時間の文字列をdatetimeに変換
import datetime str = '2023-05-01 17:10:45' dte = datetime.datetime.strptime(str, '%Y-%m-%d %H:%M:%S') print(dte) #[結果] 2023-05-01 17:10:45
ここでは日付だけでなく時間も含んだ文字列の「2023-05-01 17:10:45」のパターンを「datetime」へ変換しました。
第2引数の変換後のフォーマットに時間・分・秒を追加し、「%Y-%m-%d %H:%M:%S」とすると変換できます。
時間「H」、分「M」、秒「S」はすべて大文字なので注意してください。
参考ページ:https://docs.python.org/3/library/datetime.html?highlight=datetime#strftime-and-strptime-behavior
これで様々な形式の文字列を日付「datetime」に変換することができました。
以上、Pythonで文字列から日付に変換する方法でした。
コメント