#参考
8.1 datetime 基本的な日付型および時間型(Python3.3)
#strptime()を使う
文字列からdatetimeオブジェクトを生成するには、strptime()を使う。
##文字列からdatetimeオブジェクトを生成する
from datetime import datetime
>>> t = datetime.strptime('2014/01/01 00:01:02', '%Y/%m/%d %H:%M:%S')
>>> t.strftime('%Y/%m/%d %H:%M:%S')
'2014/01/01 00:01:02'
##文字列からdateオブジェクトを生成する
参考URLにもあるように、dateオブジェクトにはstrptime()メソッドがない。よって、以下の様な方法はだめ。
これはエラー
>>> from datetime import date
>>> t = date.strptime('2014/01/01', '%Y/%m/%d')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.date' has no attribute 'strptime'
文字列からdateオブジェクトを生成するには、
-
datetimeのstrptime()でdatetimeオブジェクトを生成
-
生成したdatetimeオブジェクトからdateオブジェクトを生成
という方法をとるのが良さそう。
>>> from datetime import datetime
>>> t = datetime.strptime('2014/01/01', '%Y/%m/%d')
>>> t.isoformat() #この段階では、timeの部分が0で初期化されている
'2014-01-01T00:00:00'
>>> date = t.date()
>>> date.isoformat()
'2014-01-01'
##文字列からtimeオブジェクトを生成する
文字列からtimeオブジェクトを生成するのも、文字列からdateオブジェクトを生成するときと同様の方法でできる。
>>> from datetime import datetime
>>> t = datetime.strptime('13:14:15', '%H:%M:%S')
>>> t.isoformat() #この段階では、dateの部分が1900年1月1日で初期化されている
'1900-01-01T13:14:15'
>>> t = t.time()
>>> t.isoformat()
'13:14:15'