【发布时间】:2019-04-12 19:39:06
【问题描述】:
我正在尝试根据此系统从时间戳中获取工作周数:
美国、加拿大、拉丁美洲大部分地区、日本、以色列、韩国等 其他人,使用周编号系统(在我们的 计算器),其中任何给定年份的第一周(编号为 1)是 包含 1 月 1 日的那一周。一周的第一天是星期日 星期六是最后一个。
https://www.calendar-12.com/week_number
Python 的 strftime 方法支持 %U 和 %W,但它们都不匹配该系统。 Pandas 还在 ISO 8601 之后添加了%V,但这也不是在北美使用的。
【问题讨论】:
-
您能解释一下给定选项为何不适合您吗?它们有何不同?
-
另外,看看这个类似的问题stackoverflow.com/q/2600775/9225671
-
@Ralf 该问题根据 ISO 8601 询问并回答了周数,正如我在问题中提到的那样,这不是北美的标准。至于内置的 Python 选项有何不同,您可以在此处阅读它们的描述:strftime.org。它们只是与我的问题中的描述不符。我都试过了,比较了,这里有一个例子(2016/01/02应该是WW01):screencast.com/t/5lSOb7NRmsG
-
所以基本上你想要实现的是
%U选项返回的值,但递增 1(因此年份从 1 而不是 0 开始),对吗? -
@Ralf 我试过了,但仍然不正确。第一步是递增 1,但你仍然有这个问题:screencast.com/t/5r4jttvh(这些都应该是同一周)。所以我必须用 1 替换 53。然后我发现有些年份的最后一周是 54,所以我不得不在前一年的最大值上进行替换。即使我发现
%U在 2017 年等年份从 1 开始,所以最初递增 1 会使整年错...
标签: python datetime timestamp week-number