【问题标题】:python dateutil.parser ALWAYS return WRONG year as 2021?python dateutil.parser 总是返回错误的年份为 2021?
【发布时间】:2021-06-18 09:58:27
【问题描述】:
print(dateutil.__version__)

# shows 2.8.1

from dateutil.parser import parse

print(parse('September 29,2019'))
# datetime.datetime(2021, 9, 29, 0, 0),  SHOULD BE '2019' for the year.

Python 3.8、WIN10 尝试不同的笔记本电脑,结果相同。更多详细信息,请参阅随附的屏幕副本。

https://i.stack.imgur.com/U6cVj.png

【问题讨论】:

  • 请通过intro tour、help center 和how to ask a good question 了解本网站的工作原理并帮助您改进当前和未来的问题,从而帮助您获得更好的答案。我们希望您在发布之前相当熟悉其用法 - 请记住该网站的既定目的。
  • 请提供预期的MRE - Minimal, Reproducible Example。显示中间结果与预期结果的偏差。我们应该能够将您的代码块粘贴到文件中,运行它并重现您的问题。这也让我们可以在您的上下文中测试任何建议。不接受站外链接和文字图片;您的帖子必须是独立的,符合本网站的目的。
  • 请务必在逗号后使用空格。

标签: python python-dateutil


【解决方案1】:

基本问题是您作为参数提供的日期不是相当在预期格式之一。在将输入提供给解析器之前,您需要清理输入。

下面是问题的一个简单示例:

from dateutil.parser import parse

print(parse('September 29,2019'))
print(parse('September 29, 2019'))

输出:

2021-09-29 00:00:00
2019-09-29 00:00:00

有关输入要求,请参阅包文档。如果您的程序输入不符合这些要求,则需要对数据进行预处理。在这种情况下,只需插入所需的空格即可解决问题。

【讨论】:

  • 感谢您的大力帮助,我会试试的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多