Twitter API をちょっと触ってて、取得したつぶやきの日付が unicode でくるのでそれを datetime に変換したいなーと思ってスマートな方法を探した。
どうやら strptime を使うと文字列である日付を datetime に変換できる様だ。
time.strptime と datetime.datetime.strptime の二つあって返る値が異なる。
time.strptime では time.struct_time
datetime.datetime.strptime では datetime.datetime
がそれぞれ返る。
以下試したコード
>>> import time
>>> import datetime
>>> s = "Fri Apr 08 07:07:52 +0000 2011"
>>> st = time.strptime(s,'%a %b %d %H:%M:%S +0000 %Y')
>>> st
time.struct_time(tm_year=2011, tm_mon=4, tm_mday=8, tm_hour=7, tm_min=7, tm_sec=52, tm_wday=4, tm_yday=98, tm_isdst=-1)
>>> dt=datetime.datetime(st.tm_year,st.tm_mon,st.tm_mday,st.tm_hour,st.tm_min,st
.tm_sec)
>>> dt
datetime.datetime(2011, 4, 8, 7, 7, 52)
>>> # datetime.datetime.strptime は datetime 型で返ってくる。
>>> dst = datetime.datetime.strptime(s,'%a %b %d %H:%M:%S +0000 %Y')
>>> dst
datetime.datetime(2011, 4, 8, 7, 7, 52)
コメント