【问题标题】:Python dateutil not parsing monthPython dateutil不解析月份
【发布时间】:2014-09-04 20:29:21
【问题描述】:

我使用dateutil 解析日期得到以下堆栈跟踪:

>>> dateutil.parser.parse('Sept 18 2014', fuzzy=True).date()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File     "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/dateutil/parser.py", line     697, in parse
    return DEFAULTPARSER.parse(timestr, **kwargs)
  File     "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/dateutil/parser.py", line     310, in parse
    ret = default.replace(**repl)
ValueError: month must be in 1..12

这行得通:

dateutil.parser.parse('Sep 18 2014', fuzzy=True).date()

在给定与上述类似的用户输入的情况下,知道如何解决这个问题吗?

【问题讨论】:

  • 您使用的是什么dateutil 版本?如果您省略或将fuzzy 设置为False,会发生什么情况?

标签: python date python-dateutil


【解决方案1】:

此问题似乎已在此处修复:https://bugs.launchpad.net/dateutil/+bug/876900。

安装最新版本的 dateutil:

% pip install -U python-dateutil
Downloading/unpacking python-dateutil
  Downloading python-dateutil-2.2.tar.gz (259Kb): 259Kb downloaded
  Running setup.py egg_info for package python-dateutil
...

解决问题:

In [2]: import dateutil

In [3]: dateutil.parser.parse('Sept 18 2014').date()
Out[3]: datetime.date(2014, 9, 18)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多