Python
datetime
python3
BeautifulSoup
Webスクレイピング

[Python]WEBスクレイピングで取得した色んなフォーマットの日付の文字列からdatetime型に変換する方法

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

8.1. datetime — 基本的な日付型および時間型