5

私は次のような日付を持っています:

'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] Pythonを使用して日付の整数を月の名前に変換します

4

1 に答える 1

4

%Yの代わりに使用し%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   

ドキュメントはこちら

デモ:

>>> 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')
于 2013-09-21T16:03:14.917 に答える