我正在尝试比较两个日期值:
1)Jun 23, 2016 10:36:31 EET
2)Thu, 23 Jun 2016 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 23, 2016 10:36:31 EET
作为输出?
P.S。 EET
是我当地的时区
答案 0 :(得分:1)
以下是使用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
请阅读文档,因为使用时区很棘手,并且有很多警告:
答案 1 :(得分:0)
AFAIK AM不是时区。您是否尝试让datetime.astimezone(tz)
工作? https://docs.python.org/2/library/datetime.html
答案 2 :(得分:0)
如果您想比较日期时间值,最好将它们转换为datetime
个对象,例如在两个输入字符串上调用datetime.strptime
,每个输入字符串都有相应的格式字符串,然后比较生成的datetime
个对象。