Python 如何在日期格式中指定时区以获取本地时间

Python 如何在日期格式中指定时区以获取本地时间,python,python-2.7,date,python-3.x,datetime,Python,Python 2.7,Date,Python 3.x,Datetime,我试图比较两个日期值: 1) 2016年6月23日10:36:31 EET 2) Thu,2016年6月23日07:36:31 GMT 为此,我需要将第二个日期转换为与第一个日期相同的日期格式,因此我使用以下代码: import datetime date = datetime.datetime.strptime("Thu, 23 Jun 2016 07:36:31 GMT", "%a, %d %b %Y %H:%M:%S %Z") .strftime('%b %d, %Y %H:%M:

我试图比较两个日期值:

1)
2016年6月23日10:36:31 EET

2)
Thu,2016年6月23日07:36:31 GMT

为此,我需要将第二个日期转换为与第一个日期相同的日期格式,因此我使用以下代码:

import datetime
date = datetime.datetime.strptime("Thu, 23 Jun 2016 07:36:31 GMT", "%a, %d %b %Y %H:%M:%S %Z")
    .strftime('%b %d, %Y %H:%M:%S %Z')
并获得以下输出:

Jun 23, 2016 07:36:31
这仍然是
GMT
时间(也未指定时区值)

我应该如何更新我的
strftime
参数以获得
Jun 232016 10:36:31 EET
作为输出


另外,EET是我的本地时区,AFAIK AM不是时区。您是否尝试让
datetime.astimezone(tz)
工作

如果要比较日期时间值,最好将它们都转换为
datetime
对象,例如在两个输入字符串上调用
datetime.strptime
,每个字符串都使用适当的格式字符串,然后比较生成的
datetime
对象。

以下是使用
pytz
模块的基本方法:

import datetime
import pytz

fmt = "%a, %d %b %Y %H:%M:%S %Z"
date = datetime.datetime.strptime("Thu, 23 Jun 2016 07:36:31 GMT", fmt)

gmt_date = pytz.timezone('GMT').localize(date)

print("Time in GMT:", gmt_date.strftime(fmt), sep='\n')

# Now to convert! Notice it took into account "summer time"
print("Time in EET",
      gmt_date.astimezone(pytz.timezone('EET')).strftime(fmt), sep='\n')
我的输出:

Time in GMT:
Thu, 23 Jun 2016 07:36:31 GMT
Time in EET
Thu, 23 Jun 2016 10:36:31 EEST
请阅读文档,因为使用时区很棘手,并且有许多警告:


对不起,时区确切地说是
AM
?无论如何,您可以使用
pytz
模块:omg!我不应该工作那么多:)我是说
EET
。问题更新