我需要根据用户所在的时区将用户给定的时间(以字符串形式)转换为UTC。因此,我所需要的只是时区(考虑夏令时)与UTC的时差。问题似乎是,python中没有内置的时区信息,因此我需要使用pytz(我宁愿不要)。有没有更简单的方法?
from datetime import datetime
import pytz
TIME_FORMAT = '%H:%M:%S'
TIMEZONE = 'Europe/Berlin'
def utctime_for_timestring(timestring, tz=TIMEZONE, tfmt=TIME_FORMAT):
t = datetime.strptime(timestring, tfmt)
offset = datetime.now(pytz.timezone(tz)).utcoffset()
return (t - offset).time()
# >>> utctime_for_timestring('20:00:00')
# datetime.time(18, 0)