Pythonでは文字列の日付を日付型に変換することができます。
今回は、Pythonで文字列から日付型「datetime」 に変換する方法を解説します。
文字列を日付型datetimeに変換する方法
Pythonで文字列を日付に変換する方法をいくつかのパターンにわけて解説します。
区切り文字なしの文字列をdatetimeに変換
import datetime str = '20180801' dte = datetime.datetime.strptime(str, '%Y%m%d') print(dte) #[結果] 2018-08-01 00:00:00
ここでは日付文字列の区切り文字なし「20180801」のパターンを日付型「datetime」へ変換しました。
文字列を「datetime」に変換するには、「datetime」の「strptime」を使います。第一引数に変換したい文字列、第2引数に変換後のフォーマット「%Y%m%d」を指定します。
「Y」は西暦4桁なので大文字、「m」「d」は小文字なので注意してください。
日付フォーマット
日付を指定するフォーマットはこちらです。
書式 | 説明 |
%Y | 年 西暦4桁(例、2018) |
%y | 年 西暦2桁(例、18) |
%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 = '2018/08/01' dte = datetime.datetime.strptime(str, '%Y/%m/%d') print(dte) #[結果] 2018-08-01 00:00:00
ここでは日付文字列でスラッシュ区切りの「2018/08/01」のパターンを「datetime」へ変換しました。
第2引数の変換後のフォーマットにスラッシュを入れて「%Y/%m/%d」とすると変換できます。
ハイフン「-」つきの文字列をdatetimeに変換
import datetime str = '2018-08-01' dte = datetime.datetime.strptime(str, '%Y-%m-%d') print(dte) #[結果] 2018-08-01 00:00:00
ここでは日付文字列でハイフン区切りの「2018-08-01」のパターンを「datetime」へ変換しました。
第2引数の変換後のフォーマットにハイフンを入れて「%Y-%m-%d」とすると変換できます。
日付+時間の文字列をdatetimeに変換
import datetime str = '2018-08-01 17:10:45' dte = datetime.datetime.strptime(str, '%Y-%m-%d %H:%M:%S') print(dte) #[結果] 2018-08-01 17:10:45
ここでは日付だけでなく時間も含んだ文字列の「2018-08-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で文字列から日付に変換する方法でした。
コメント