ISO日期格式的正确日期解析器格式字符串是什么?

时间:2014-03-09 15:36:21

标签: python date python-2.7 date-parsing

我正在尝试以ISO日期格式解析日期,但由于我不理解的原因,我使用的模式无效。

来自shell:

>>> s
datetime.date(2014, 1, 3)
>>> str(s)
'2014-01-03'
>>> datetine.strptime(str(s),"%y-%m-%d").date()
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Python27\lib\_strptime.py", line 325, in _strptime
    (date_string, format))
ValueError: time data '2014-01-30' does not match format '%y-%m-$d'

2014-01-03应与%y-%m-%d匹配,对吧?为什么我会收到此错误?

2 个答案:

答案 0 :(得分:4)

来自docs(强调我的):

  

%y 没有世纪作为零填充十进制数。 00,01,...,99
  %Y 年份以世纪作为十进制数字。 1970年,1988年,2001年,2013年

因此,当%y-%m-%d需要14-01-03时,2014-01-03期待%Y-%m-%d

答案 1 :(得分:3)

大小写的区别:

>>> datetime.datetime.strptime('2014-01-03', '%Y-%m-%d').date()
datetime.date(2014, 1, 3)
>>> datetime.datetime.strptime('14-01-03', '%y-%m-%d').date()
datetime.date(2014, 1, 3)

记录在strptime and strftime behavior