2013年错误的周数

时间:2013-01-14 06:51:41

标签: python

我从2011年开始使用我的备份脚本并且完全没有问题。但是从2013年开始,我遇到了正确的周数问题。

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> time.strftime("%W", time.localtime())
'02'

但我们有第3周

我做错了吗?它一直工作到2013年。

感谢。

2 个答案:

答案 0 :(得分:5)

  

“”“一年中的周数(星期一作为一周的第一天)为a   十进制数[00,53]。在第一个之前的新年的所有日子   星期一被认为是在第0周。“”“

您正在寻找的是通过ISO标准定义的周数的值。

查看isoweek模块。

>>> from isoweek import Week
>>> Week.thisweek()
isoweek.Week(2013, 3)
>>> Week.thisweek().week
3

答案 1 :(得分:4)

第一个星期一之前的新年中的所有日子都被视为第0周。 docs

查看日历:

import calendar    
print calendar.month(2013,1)

Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

在标准库中,您可以使用datetime.isocalendar()

from datetime import datetime
datetime.date(datetime.now()).isocalendar()[1]