如何以这种格式获取当前GMT时间;2019年9月22日星期日09:18:13 GMT“;用python
即使不再使用UTC,我试图查询的端点仍需要hmac签名,并带有以下格式的日期头:如何以这种格式获取当前GMT时间;2019年9月22日星期日09:18:13 GMT“;用python,python,date,time,Python,Date,Time,即使不再使用UTC,我试图查询的端点仍需要hmac签名,并带有以下格式的日期头:“Sun,2019年9月22日09:18:13 GMT” 此不推荐使用的方法newdate().togmString()使JSSDK工作,我需要一个python中的等效程序 time.strftime(“%a,%d%b%Y%I:%M:%S%Z”,time.gmtime())返回全名(即中欧时间),而time.strftime(“%a,%d%b%Y%I:%M:%S%Z”,time.gmtime())返回“Sun,201
“Sun,2019年9月22日09:18:13 GMT”
此不推荐使用的方法newdate().togmString()代码>使JSSDK工作,我需要一个python中的等效程序
time.strftime(“%a,%d%b%Y%I:%M:%S%Z”,time.gmtime())
返回全名(即中欧时间),而time.strftime(“%a,%d%b%Y%I:%M:%S%Z”,time.gmtime())
返回“Sun,2019年9月22日09:18:13+0100”
我得到的最接近的是time.strftime(“%a,%d%b%Y%i:%M:%S GMT”,time.gmtime())
,理论上它打印的字符串是正确的,但我还是不断得到这个错误:“{\”message\:\”无法验证HMAC签名,HMAC身份验证\“}”需要有效的日期或x-date头。
看看这里:
确保使用的是%Z而不是%Z
从日期时间导入日期时间
导入时间
now=datetime.now()#当前日期和时间
date\u time=time.strftime(“%a,%d%b%Y%H:%M:%S%Z”,time.gmtime())
#输出:日期和时间:2019年9月22日星期日10:01:53 GMT
打印(“GMT中的日期和时间:,日期\时间)
#输出:当地时间:2019年9月22日星期日上午10:01:53 UTC
打印(“本地:“+time.strftime”(%a,%d%b%Y%I:%M:%S%p%Z\n))
这对我有用:)
我很困惑,因为这正是我构建它所依据的方式,你可以在我的问题主体中看到它。输出为《太阳报》,2019年9月22日10:03:30或《西欧罗巴太阳报》
,该格式不是ineed@pep1如果你看看我的问题的主体,你必须使用%Z
而不是%Z
,如果你看我的问题主体,我确实试过%Z
,%Z
,还有你在回答@MatejNovosad和@Hermueller时建议的格式,所以我不明白你为什么建议这个解决方案。即使这是以GMT获取时间的方法,它也根本不打印我需要的格式!它几乎打印出OP需要的格式,但他们想要缩写的时区代码,例如GMT
,而不是Greenwich-Mean-Time
@Hermueller你说得对,它在我的linux机器上有。。。我还检查了python版本——linux上的python3.6和3.7 printGMT
,但windows上的python3.7和2.7 printMitteleuropäische Zeit
(德语代表MEZ)您应该发布另一个与该错误相关的问题。因为似乎每个人都能从运行相同的代码中获得正确的输出。您可以尝试运行我在答案中的代码,而不运行其余代码,以确保是datetime
模块导致了错误。尝试重新安装datetime
。显然@MCO解决了这个问题,看起来它与操作系统有关。稍后我可能会接受您的回答,因为它似乎与我得到的最接近的istime.strftime(“%a,%d%b%Y%I:%M:%S GMT”,time.gmtime())相反。ehich根本不起作用%Z是区域设置的时区名称。除了硬编码之外,您能做的最好的事情就是使用%z并拥有一个字典。
import datetime
print(datetime.datetime.now(datetime.timezone.utc).strftime('%a, %d %b %Y %H:%M:%S GMT'))