【问题标题】:dateutil.parser.parse does not return a correct datetimedateutil.parser.parse 不返回正确的日期时间
【发布时间】:2017-06-23 07:56:13
【问题描述】:

我尝试了以下代码行,它返回了一个奇怪的结果。

In [68]:
from datetime import datetime
from dateutil.parser import parse
​
parse('2017/JAN')

Out[68]:
datetime.datetime(2017, 1, 6, 0, 0)

由于命令解析器解析截止到 1 月的日期时间字符串,因此可以合理地假设输出应该是该月的第一天,即 2017/January/1。

但是,奇怪的是,输出是 2017/January/6,巧合的是,该日期与我的 Windows PC 上的日期相同。

所以我尝试将日期更改为昨天(2 月 5 日),输出更改为 datetime(2017, 1, 5, 0, 0),即 2017/JAN/5。

如果没有将日期指定为函数参数,解析器似乎从正在运行的本地计算机的日历中获取日期。

这种行为是设计使然还是错误?如果是有意的,理由是什么?

谢谢

【问题讨论】:

  • 你能澄清一下你的问题吗

标签: python dataframe time-series


【解决方案1】:

您应该查看dateutil 包。

解析的格式必须不同:

如果您需要更多详细信息,请查看parse link

编辑:你的一个小例子,

from datetime import datetime
datetime.utcfromtimestamp(float("1294989360"))

【讨论】:

  • 感谢您的回答。 dateutil 的文档网页没有提到如果在传递给解析器的日期时间字符串中未指定日期而只是年和月,会发生什么。我试图使用解析器作为创建日期时间的便捷方式。
  • 那我给你举个简单的例子
猜你喜欢
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
  • 2014-04-10
  • 1970-01-01
  • 2015-12-14
相关资源
最近更新 更多