使用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