首页 > 解决方案 > 如何将字符串转换为gmt时间

问题描述

我得到一个需要转换为 GMT 时间的字符串。我认为这是正确的,但我不确定。

t = 'Jan 17 2003 12:00:05:000 AM'
t = datetime.datetime.strptime(t,'%b %d %Y %I:%M:%S:%f %p')

它打印2003-01-17 00:00:05,我相信这是正确的。但是我如何确定这是否是格林威治标准时间?我不确定是否有办法转换strptime在线时间。

标签: pythongmt

解决方案


在您提出的问题中,无法判断时间所在的时区。这是有道理的——如果我告诉你“2003 年 1 月 17 日,午夜后 5 分钟”,你可能不知道我说的是哪个时区。您也许可以假设给定时间适用于您当前所在的时区,但这很危险,并且由于云执行频率的增加,很可能在很多时候给出错误的答案(因为服务器可能在与用户不同的时区)。

您可能能够确认给定时间是 GMT 的一种方法是将其与您知道其时间为 GMT 的另一个事件进行交叉引用,然后您可以根据差异确定其时区。您可能能够确定时区的另一种方法是询问提供日期的人(如果是用户输入;您会注意到许多网站在您创建帐户时输入了您的时区,因此),或确定提供日期的任何实体的位置(如果可能),或找到其他方法来获取该信息。如果不知道日期应该来自哪里,就不可能给出更具体的建议。

IANA 提供了一个现有时区数据库,以帮助实际从一个时区转换到另一个时区(因为它并不总是像向前或向后改变一个小时那样简单)。这个答案还提供了一些关于将datetime对象从一个时区转换为另一个时区的见解。


推荐阅读