如何将字符串转换为 gmt 时间

How to convert string to gmt time

我收到一个字符串,需要将其转换为 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,我认为这是正确的。但是我如何确定这是否是 GMT?我不确定是否有办法转换 strptime 行的时间。

在您提出的问题中,无法判断时间是哪个时区。这是有道理的——如果我告诉你 "January 17, 2003, 5 minutes after midnight",你可能不知道我说的是哪个时区。您可以假设给定时间适用于您当前所在的时区,but that's dangerous,并且由于云执行频率的增加,很可能在很多时候给出错误的答案(因为服务器可能与用户处于不同的时区)。

您可以确认给定时间是格林威治标准时间的一种方法是cross-reference它相对于您知道时间是格林威治标准时间的另一个事件,并且然后您可以根据差异确定其时区。另一种您可能能够弄清楚时区的方法是询问提供日期的人(如果它是用户输入;您会注意到,出于这个原因,许多网站在您创建帐户时都让您输入时区),或者确定提供日期的任何实体的位置(如果可能),或找到其他方式获取该信息。如果不知道日期应该来自哪里,就不可能给出更具体的建议。

The IANA provides a database of existing timezones to help with actually converting from one timezone to another (since it's not always as simple as changing an hour forward or back). This answer 还提供了一些关于将 datetime 对象从一个时区转换为另一个时区的见解。