Python提供了不同的包(datetime, time, calendar)来处理时间。我犯了一个大错误,使用以下命令获取当前的GMT时间time.mktime(datetime.datetime.utcnow().timetuple()))

用Unix时间戳获取当前格林尼治时间的简单方法是什么?


当前回答

至少在python3中,这是有效的:

>>> datetime.strftime(datetime.utcnow(), "%s")
'1587503279'

其他回答

至少在python3中,这是有效的:

>>> datetime.strftime(datetime.utcnow(), "%s")
'1587503279'
from datetime import datetime as dt
dt.utcnow().strftime("%s")

输出:

1544524990

Python2和python3

使用时间模块是很好的

import time
int(time.time())

1573708436

你也可以使用datetime模块,但是当你使用strftime('%s')时,strftime会将时间转换为你的本地时间!

python2

from datetime import datetime
datetime.utcnow().strftime('%s')

python3

from datetime import datetime
datetime.utcnow().timestamp()

这有用吗?

from datetime import datetime
import calendar

d = datetime.utcnow()
unixtime = calendar.timegm(d.utctimetuple())
print unixtime

如何将Python UTC日期时间对象转换为UNIX时间戳

我喜欢这个方法:

import datetime, time

dts = datetime.datetime.utcnow()
epochtime = round(time.mktime(dts.timetuple()) + dts.microsecond/1e6)

这里发布的其他方法要么不保证在所有平台上为您提供UTC,要么只报告整个秒数。如果你想要完整的分辨率,这个可以做到微秒级。