2013-09-21 47 views
1

我有一個日期:轉換DateTime對象:%B%d%Y

'September 17, 2013' 

我想將其轉換爲:

2013-09-17 

我想這暗示從其中取出計算器的問題[1]:

mydate = datetime.datetime.strptime("September 17, 2013", '%B %d, %y') 

但它給了我一個:

File "/usr/lib/python2.7/_strptime.py", line 328, in _strptime 
    data_string[found.end():]) 
ValueError: unconverted data remains: 13 

我該怎麼辦?

[1] convert an integer number in a date to the month name using python

回答

2

使用%Y insetead的%y。後者只匹配2位數

%y Year without century as a zero-padded decimal number. 00, 01, ..., 99 
%Y Year with century as a decimal number. 1970, 1988, 2001, 2013 

Documentation here

演示:

>>> import datetime 
>>> datetime.datetime.strptime("September 17, 2013", '%B %d, %y') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\_strptime.py", line 328, in _strptime 
    data_string[found.end():]) 
ValueError: unconverted data remains: 13 
>>> x = datetime.datetime.strptime("September 17, 2013", '%B %d, %Y') 
>>> x 
datetime.datetime(2013, 9, 17, 0, 0) 
>>> 

然後,

x.strftime('%Y-%m-%d') 
相關問題