Edited at

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

More than 1 year has passed since last update.


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 — 基本的な日付型および時間型