为什么dateutil.parser不能按预期工作?

时间:2014-03-21 06:40:31

标签: python datetime python-dateutil

我正在尝试获取代表 4月23日datetime实例,但如果传递的参数为'3.4',则始终获取 3月4日,设置dayfirst=False没用:

In [115]: from dateutil import parser

In [116]: parser.parse('4-23', ) #√
Out[116]: datetime.datetime(2014, 4, 23, 0, 0)

In [117]: parser.parse('4/23', ) #√
Out[117]: datetime.datetime(2014, 4, 23, 0, 0)

In [118]: parser.parse('4.23', ) #×
Out[118]: datetime.datetime(2014, 3, 4, 0, 0)

In [120]: parser.parse('4.23', dayfirst=False) #×
Out[120]: datetime.datetime(2014, 3, 4, 0, 0)

parser的错误吗?

1 个答案:

答案 0 :(得分:0)

简单的答案是,通过parse方法不支持点字符作为时间单位之间的分隔符,因为它在ISO格式表示的时间字符串的上下文中使用。

请尝试将所有点转换为斜杠(/)或heifens( - )

parser.parse('4.23'.replace('.','/'))

解决此问题