嘗試在Python 2.6以下幾點:爲什麼python的datetime.isocalendar()和datetime.year有所不同?
newyear_2012 = datetime.date.fromtimestamp(1325419200)
newyear.year # returns 2012
newyear.isocalendar() # return (2011, 52, 7)
這裏有什麼交易?這是一個錯誤?我找不到記錄,但也許我沒有找到正確的地方。
如果我是轉換unix時間戳here,它告訴我:孫老師,2012 01一月12:00:00 GMT
更新: 下面的答案解釋這不是一個Python的錯誤,而是由於符合ISO規範。如果你想獲得的是永遠不會把前幾天的一年中周#52週數,你可以嘗試以下方法:
week_no = int(time.strftime("%U", datetime_object.timetuple()))
我不知道是什麼標準,是對應於,但從我的角度來看,它的行爲更直觀(在我的申請周內,一年內的數字應該隨着時間的推移而增加)。
datetime.date.isocalendar()的行爲不是由你的直覺決定的,而是由ISO 8601決定的。 – jwg 2016-05-04 09:52:37