#WEBスクレイピングで取得した色んな形の日付のデータをdatetime型に変換する方法です。
まずは一般的な形から
from datetime import datetime as dt
today = '2018/01/9 18:55:20'
tdatetime = dt.strptime(today,'%Y/%m/%d %H:%M:%S')
print(tdatetime)
# 2018-01-09 18:55:00
漢字の表記だったとしても使い方は一緒です。
from datetime import datetime as dt
today = '2018年01月9日18時55分'
tdatetime = dt.strptime(today,'%Y年%m月%d日%H時%M分')
print(tdatetime)
# 2018-01-09 18:55:00
よくある西暦が2桁の場合、%Yを%yに変えれば大丈夫です。
from datetime import datetime as dt
today = '18/01/9 18:55:20'
tdatetime = dt.strptime(today,'%y/%m/%d %H:%M:%S')
print(tdatetime)
# 2018-01-09 18:55:20
よく使うフォーマットは暗記しちゃいましょう。
ディレクティブ | 意味 | 使用例 |
---|---|---|
%y | 0埋めした10進数で表記した世紀ありの年。 | 00, 01, …, 99 |
%Y | 西暦 ( 4桁) の 10 進表記を表します。 | 2016, 2017, 2018 |
%m | 0埋めした10進数で表記した月。 | 01, 02, 03 |
%d | 0埋めした10進数で表記した月中の日にち。 | 01, 02, …, 31 |
%H | 0埋めした10進数で表記した時 (24時間表記)。 | 00, 01, …, 23 |
%I | 0埋めした10進数で表記した時 (12時間表記)。 | 01, 02, …, 12 |
%M | 0埋めした10進数で表記した分。 | 00, 01, …, 59 |
%S | 0埋めした10進数で表記した秒。 | 00, 01, …, 59 |