如何将字符串转换为格林尼治标准时间

时间:2019-07-16 13:11:45

标签: python 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行上转换时间。

1 个答案:

答案 0 :(得分:2)

在您提出问题时,无法分辨出该时间所在的时区。这样做有道理-如果我告诉您“ 2003年1月17日午夜5分钟后”,您将不知道我在说哪个时区。您可能会假设给定时间适用于您当前所在的时区but that's dangerous,并且由于云执行频率越来越高,很可能在很多时间给出错误的答案(因为服务器可能与用户位于不同的时区)。

您可能能够确认为给定时间为格林尼治标准时间的一种方法是,将其与您知道其时间位于格林尼治标准时间的另一个事件进行交叉引用,然后可以基于其确定时区在区别上。您可能能够弄清楚时区的另一种方法是询问提供日期的人(如果是用户输入;您会注意到,由于这个原因,很多网站在您创建帐户时都输入了时区),或者确定提供日期的实体的位置(如果可能的话),或者找到其他方式来获取该信息。不知道日期应该来自哪里,就不可能给出更具体的建议。

The IANA provides a database of existing timezones,以帮助实际从一个时区转换为另一个时区(因为它并不总是像向前或向后更改一个小时一样简单)。 This answer还提供了一些有关将datetime对象从一个时区转换到另一个时区的见识。