猿问

如何将本地时间字符串转换为UTC?

如何将本地时间字符串转换为UTC?

如何转换日期时间?本地时间字符串转到以UTC时间为单位的字符串?

我肯定我以前做过这个,但是找不到,所以希望将来能帮到我(和其他人)。

澄清例如,如果我有2008-09-17 14:02:00在我的本地时区(+10),我希望生成一个具有等效字符串的字符串。UTC时间:2008-09-17 04:02:00.

另外,来自http:/lucumr.poco.org/2011/7/15/eppur-si-muLove/注意,一般来说,这是不可能的,因为DST和其他问题没有唯一的从本地时间到UTC时间的转换。


冉冉说
浏览 861回答 3
3回答

繁花不似锦

首先,将字符串解析为一个朴素的datetime对象。这是datetime.datetime没有附加时区信息。见文件datetime.strptime有关解析日期字符串的信息。使用pytz模块,它附带了时区+UTC的完整列表。找出本地时区是什么,从它构造一个时区对象,并操作它并将它附加到天真的日期时间。最后,使用datetime.astimezone()方法将日期时间转换为UTC。使用本地时区“America/los_Angeles”的源代码,用于字符串“2001-2-3 10:11:12”:import pytz, datetime local = pytz.timezone ("America/Los_Angeles")naive = datetime.datetime.strptime ("2001-2-3 10:11:12", "%Y-%m-%d %H:%M:%S")local_dt = local.localize(naive, is_dst=None)utc_dt = local_dt.astimezone(pytz.utc)在那里,您可以使用strftime()方法根据需要格式化UTC日期时间:utc_dt.strftime ("%Y-%m-%d %H:%M:%S")

侃侃尔雅

从String到String的完整转换如下:time.strftime("%Y-%m-%d %H:%M:%S",                time.gmtime(time.mktime(time.strptime("2008-09-17 14:04:00",                                                      "%Y-%m-%d %H:%M:%S"))))我的总结time/calendar职能:time.strptime字符串->元组(没有应用时区,因此匹配字符串)time.mktime本地时间元组->秒自时代(总是本地时间)time.gmtime从UTC时代开始的秒->元组和calendar.timegm元组,以UTC->秒为单位time.localtime秒后,在本地时区的时代->元组
随时随地看视频慕课网APP

相关分类

Python
我要回答