Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以这种格式获取当前GMT时间;2019年9月22日星期日09:18:13 GMT“;用python_Python_Date_Time - Fatal编程技术网

如何以这种格式获取当前GMT时间;2019年9月22日星期日09:18:13 GMT“;用python

如何以这种格式获取当前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

即使不再使用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,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 print
GMT
,但windows上的python3.7和2.7 print
Mitteleuropä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'))