使用Python 2.7,如何將給定時間從一個偏移量轉換爲另一個偏移量?我的解決方案將時間偏移視爲時間並忽略導致不正確轉換的符號(+/-)。Python 2.7 - 時間偏移轉換
import time
from datetime import datetime
import re
# inputs (cannot change)
from_time_str = '13:45'
from_offset = '-0700'
to_offset = '-0100'
# conversion
from_time = time.strptime(from_time_str, '%H:%M')
from_offset_time = time.strptime(from_offset, '-%H%M')
to_offset_time = time.strptime(to_offset, '-%H%M')
offset_diff = abs(time.mktime(to_offset_time) - time.mktime(from_offset_time))
to_timestamp = offset_diff + time.mktime(from_time)
to_datetime = datetime.fromtimestamp(to_timestamp)
print to_datetime.strftime('%H:%M')
輸出:
19:45
+/-:
from_time_str = '13:45'
from_offset = '-0700'
to_offset = '+0700'
to_offset_time = time.strptime(to_offset, '+%H%M')
輸出:
13:45
對此,如何使用time [datetime.timedetla()](https://docs.python.org/2/library/datetime.html#timedelta-objects)?你可以從你的日期時間對象減去所需的小時數,如下所示:''datetimeObj - datetime.timedelta(hours = 7)''或''datetimeObj - datetime.timedelta(hours = 3)'' – Igor
@Igor我有很難計算兩個偏移量之間的差異,即:+0700和-0700之間的差值是14,那麼我可以使用14作爲timedelta中的小時數。或者在-0100和+0530之間是6小時30分鐘。 – rvk
如果這些操作的目的是[將一個時區中的時間轉換爲另一個時區中的時間(您應該將時間轉換爲datetime對象並提供相應的pytz' tzinfo對象),那麼您正在做錯某事。]( http://stackoverflow.com/q/10997577/4279) – jfs