【问题标题】:python datetime strptime unexpected output [duplicate]python datetime strptime意外输出[重复]
【发布时间】:2020-03-18 13:59:40
【问题描述】:
datetime.datetime.strptime('2015.18', "%Y.%W")
datetime.datetime(2015, 1, 1, 0, 0)

我的代码有什么问题? 2015 是年,18 是日历周?

输出完全错误。谢谢!

【问题讨论】:

标签: python-3.x datetime


【解决方案1】:

您还必须添加工作日才能获得所需的输出。

以下行应该有效,其中 1 是一周的第一天。

>>> datetime.datetime.strptime('2015.18.1', "%Y.%U.%w")
datetime.datetime(2015, 5, 4, 0, 0)

这里的星期日被 python 假定为一周的第一天,因为我们使用的是 %U。要将星期一设置为一周的第一天,请使用 %W 或参考此处的文档https://docs.python.org/2/library/datetime.html

【讨论】:

  • 你好。谢谢你。所以不可能只使用我拥有的格式:2015.18、2015.19 等?
  • "18" 将是第 18 个日历周
  • @noob 我也想知道。这是来自 Python 文档For the datetime.strptime() class method, the default value is 1900-01-01T00:00:00.000: any components not specified in the format string will be pulled from the default value 的一些文本,所以我认为当我们说 18 作为周数但没有指定任何工作日时,它无法解析为一年中的特定日期。因此将默认日期返回到给定年份的 1 月 1 日。
  • 这里是这个方法的详细文档的链接 (docs.python.org/3/library/…)
猜你喜欢
  • 1970-01-01
  • 2021-04-16
  • 2021-11-07
  • 1970-01-01
  • 2021-10-20
  • 2013-02-02
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多