2012-01-24 5 views
2

私は年が2桁のときに、それはPythonのコンバート日2桁

>>> 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' 

いずれかを壊す

>>> 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) 

しかし日付形式に日付文字列を変換しようとしていますアイデア?

+0

BTW:m-d-Y表記が混乱します。このアングロアメリカンオーダーを使用する場合は、/を区切り文字として使用します。 - Ymd表記でよく使用されます。 – glglgl

答えて

10

%Yは、フォーマット文字列で、4桁の年を表します(documentationを参照)。 2桁の年の場合は、代わりに%yを使用してください。両方の形式をサポートするには、最初にtry:の形式の1つを取り、ValueErrorをキャッチし、もう一方を試してください。

3

2桁の年の正しい形式は、%y(小文字はy)です。

文字列変数strbuiltinの陰影として使用しないでください。