在python 2.6中尝试以下内容:
newyear_2012 = datetime.date.fromtimestamp(1325419200)
newyear.year # returns 2012
newyear.isocalendar() # return (2011, 52, 7)
这是什么交易?这是一个错误吗?我找不到记录,但也许我没找对地方。
如果我转换该unix时间戳here,它会告诉我:Sun,2012年1月1日12:00:00 GMT
更新 下面的答案解释了这不是python错误,而是由于ISO规范。如果你想得到第52周的一年中前几天不会出现的周数,你可以尝试以下方法:
week_no = int(time.strftime("%U", datetime_object.timetuple()))
我不确定它对应的标准是什么,但从我的角度来看它的行为更直观(在我的应用程序中,一年内的数字应该随着时间的推移而提升)。
答案 0 :(得分:5)
来自https://www.staff.science.uu.nl/~gent0113/calendar/isocalendar_text2.htm
ISO日历年的第一周是最早的一周,其中包含1月份的至少4天......(假设从星期一开始)
这使得ISO 2012开始于 1月2日。您的时间戳是 Sun,2012年1月1日12:00:00 GMT
答案 1 :(得分:2)
见图here。 2012年1月1日是2011年第52周。