我已經創建日期時間對象從中我減去13天如下:Python的日期時間中減去日期古怪
(date.today()-timedelta(days=13)).strftime('%Y-%m-%d')
當我在上午6點和上午08點30分執行該代碼時發生不協調。在上午6時,得到的字符串返回爲(如果今天是2012-02-29):
2012-02-15
這是目前的前14天!但是,運行在8:30 AM同一行,得到的字符串返回爲:
2012-02-16
然後正確。到目前爲止,我還沒有弄清楚這段時間之間的區別。如果這很重要,我使用時區天真的日期時間對象。我想知道結果字符串日期中可能導致此更改的原因。
非常感謝。
編輯:(基於以下eumiro的建議)
datetime.datetime.now()返回:
>>> datetime.datetime(2012, 2, 29, 10, 46, 20, 659862)
而時區爲歐洲/維也納的服務器上,並在Django應用程序運行代碼行。
我也嘗試運行的類似線到你的要求之一:
(pytz.timezone(settings.TIME_ZONE).localize(datetime.now(), is_dst=True) - \
timedelta(days=13)).strftime('%Y-%m-%d')
但具有相同的結果...這就是爲什麼我覺得我不認爲這有很大也與時區做。但同時也不確定在哪裏尋找。
datetime.datetime.now()返回: datetime.datetime(2012,2,29,10,46,20,659862) 而時區爲歐洲/維也納在服務器上和在運行該應用的django代碼行。 我也嘗試運行一個類似的線,你建議的: (pytz.timezone(settings.TIME_ZONE).localize(datetime。現在(),is_dst = True)-timedelta(days = 13))。strftime('%Y-%m-%d') 但是結果相同......這就是爲什麼我很困惑。難道是上面的行中的is_dst = True?感謝您的答覆。 – Edvinas 2012-02-29 09:47:11
奧地利的DST問題始終在UTC以外的最多兩個小時內,所以這與美國明顯的時區(6-8小時)不成問題。 – eumiro 2012-02-29 09:53:03