给定一个日期值和一个数字,我想看看这个数字与前几年当天的数字相比如何。在Python中,我如何根据年份,周数和工作日得到日期?
对于“当日”,我的意思是同一周的数字和同一个工作日,而不是相同的日历日期。
例如,开始像1975年5月25日的日期:
>>> holyGrail = datetime.datetime(1975,5,25)
这是第21周的第七天:
>>> holyGrail.isocalendar()
(1975, 21, 7)
>>>
我想拉起7日的日期1974年,1973年等21周的日子。
本质上我想这样做:
>>> yearBack = datetime.datetime().isocalendar(1974,21,7)
,并使其返回我的日期匹配星期&工作日,在这种情况下将是1974年5月26日,而不是25:
>>> yearBack = datetime.datetime(1974,5,26)
>>> yearBack.isocalendar()
(1974, 21, 7)
>>>
我从https://stackoverflow.com/a/28069361/5324657看到,有一个(无证? )格式%V至strftime()
,返回ISO-8601的周数,这在strftime的工作正常,似乎是我所需要的,但是当我尝试使用相同%V格式strptime()
我得到的错误
ValueError: 'V' is a bad directive in format '%Y-%V-%w'
我该怎么办sily /可靠地拉起同等的Year/WeekNo/Weekday日期?
请注意,我并不在乎新周开始时间或完整周期,我只需要一个一致的方法,可以进行准确的年度比较。
重复的http://stackoverflow.com/a/7687085/5324657,但那个方便的isoweek模块不是内置的。有没有内置的方法来做到这一点? –
这个重复的问题给出了唯一的内置方法;如果你的周定义与Python的不匹配(并且你不能使用Python 3.6的ISO友好'strptime'),那么不会,没有(适度干净的)内置的方式。想要有一个内置的并不是如此。 – ShadowRanger