Pythonで文字列からdatetimeオブジェクトを生成する
文字列からdatetimeオブジェクトを生成する場合、2.5で追加されたdatetime.strptimeが使えます
from datetime import datetime datetime.strptime('20120120', '%Y%m%d') # => 2012-01-20 00:00:00
第1引数に日付を表す文字列を、第2引数にフォーマット文字列を指定します。
フォーマットについてはこちらに表があります
http://www.python.jp/doc/release/library/datetime.html#strftime-strptime
フォーマットに合わない文字列を渡すとValueErrorが発生します。
# 日を含まない print datetime.strptime('20121', '%Y%m%d') # => ValueError: time data '20121' does not match format '%Y%m%d'
# 余計な日を含む print datetime.strptime('20120120', '%Y%m') # => ValueError: unconverted data remains: 20
文字列で表現していない月、日についてはそれぞれ、1月、1日になります
時分秒については0になります
print datetime.strptime('2012', '%Y') # => 2012-01-01 00:00:00
あんまり年を省略するというのはないと思いますが、省略すると1900年になります
print datetime.strptime('1', '%m') # => 1900-01-01 00:00:00