为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

冉冉说 2019-06-27 16:43:18
如何将本地时间字符串转换为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时间的转换。
查看完整描述

3 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

首先,将字符串解析为一个朴素的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")


查看完整回答
反对 回复 2019-06-27
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

从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
秒后,在本地时区的时代->元组


查看完整回答
反对 回复 2019-06-27
  • 3 回答
  • 0 关注
  • 860 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信