2015-12-23 32 views
1

我將datetime.time對象的時區轉換爲其他時區。看起來最簡單的方法是從datetime.time對象創建datetime.datetime,然後執行轉換。爲什麼datetime.time沒有astimezone?

像這樣:

dt = datetime.datetime.combine(datetime.date.today(), self.data) 
utc_dt = dt.astimezone(utc) 
self.data = utc_dt.time() 

爲什麼不datetime.time有astimezone像datetime.datetime呢?看起來這會讓事情變得更容易。是否因爲沒有日期,時區偏移可能不明確?

+3

因爲時區是日期敏感的。所以「是」。 –

+0

是的。一些時區使用DST,它要求日期與它一起計算精確的偏移量。 –

回答

6

時區需要一個日期,僅有時間是不夠的。

這是因爲:

  1. 你需要能夠確定是否DST適用。
  2. 您需要知道應用的偏移量。時區不是靜態的,它們隨時間變化,調整DST的開始和結束日期,以及UTC的偏移量。