2012-01-24 62 views
2

我試圖日期字符串轉換爲日期格式蟒蛇轉換日期時,今年是兩位數

>>> str = "04-18-2002 03:50PM" 

>>> time.strptime(str, '%m-%d-%Y %H:%M%p') 
time.struct_time(tm_year=2002, tm_mon=4, tm_mday=18, tm_hour=3, tm_min=50, tm_sec=0, tm_wday=3, tm_yday=108, tm_isdst=-1) 

然而,當今年是兩位數它打破

>>> str = "04-18-02 03:50PM" 
>>> time.strptime(str, '%m-%d-%Y %H:%M%p') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/_strptime.py", line 454, in _strptime_time 
    return _strptime(data_string, format)[0] 
    File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime 
    (data_string, format)) 
ValueError: time data '04-18-02 03:50' does not match format '%m-%d-%Y %H:%M' 

任何想法?

+0

BTW:m-d-Y表示法令人困惑。如果使用英美順序,請使用/作爲分隔符。 - 更好地用於Ymd表示法。 – glglgl

回答

10

%Y中的格式字符串表示四位數的年份,請參見documentation。對於兩位數的年份,請改爲使用%y。要同時支持這兩種格式,請首先使用try:格式之一,並抓住ValueError並嘗試另一種格式。

3

兩位數年份的正確格式爲%y(小寫字母y)。

作爲便箋,請不要調用字符串變量str,因爲它會影響builtin