为了账号安全,请及时绑定邮箱和手机立即绑定

从星期数获取日期

从星期数获取日期

波斯汪 2019-10-11 10:43:01
请问我的代码有什么问题:import datetimed = "2013-W26"r = datetime.datetime.strptime(d, "%Y-W%W")print(r)显示“ 2013-01-01 00:00:00”,谢谢。
查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

周数不足以生成日期。您也需要一周中的某一天。添加默认值:


import datetime

d = "2013-W26"

r = datetime.datetime.strptime(d + '-1', "%Y-W%W-%w")

print(r)

在-1和-%w模式告诉解析器挑周一在那一周。输出:


2013-07-01 00:00:00

%W将星期一作为一周的第一天。尽管您可以选择自己的工作日,但如果您偏离工作日,则可能会得到意外的结果。


请参阅文档中的strftime()和strptime()行为部分的脚注4:


当与使用strptime()方法,%U并%W指定了一周,一年中的一天,在计算仅使用。


请注意,如果您的星期数是ISO星期日期,那么您将改为使用%G-W%V-%u!这些指令需要Python 3.6或更高版本。


查看完整回答
反对 回复 2019-10-11
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

要完成其他答案-如果您使用的是ISO周数,则此字符串合适(以获取给定ISO周数的星期一):


import datetime

d = '2013-W26'

r = datetime.datetime.strptime(d + '-1', '%G-W%V-%u')

print(r)

%G,%V,%u是ISO当量%Y,%W,%w,所以这个输出:


2013-06-24 00:00:00

Python 3.6及更高版本中的Availabe;来自docs。


查看完整回答
反对 回复 2019-10-11
  • 3 回答
  • 0 关注
  • 407 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信