Python提供了不同的包(datetime, time, calendar)来处理时间。我犯了一个大错误,使用以下命令获取当前的GMT时间time.mktime(datetime.datetime.utcnow().timetuple()))
用Unix时间戳获取当前格林尼治时间的简单方法是什么?
Python提供了不同的包(datetime, time, calendar)来处理时间。我犯了一个大错误,使用以下命令获取当前的GMT时间time.mktime(datetime.datetime.utcnow().timetuple()))
用Unix时间戳获取当前格林尼治时间的简单方法是什么?
当前回答
#First Example:
from datetime import datetime, timezone
timstamp1 =int(datetime.now(tz=timezone.utc).timestamp() * 1000)
print(timstamp1)
输出:1572878043380
#second example:
import time
timstamp2 =int(time.time())
print(timstamp2)
输出:1572878043
在这里,我们可以看到第一个例子给出的时间比第二个更准确。 这里我用的是第一个。
其他回答
import time
int(time.time())
输出:
1521462189
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 as dt
dt.utcnow().strftime("%s")
输出:
1544524990
或者仅仅使用datetime标准模块
In [2]: from datetime import timezone, datetime
...: int(datetime.now(tz=timezone.utc).timestamp() * 1000)
...:
Out[2]: 1514901741720
您可以根据所需的分辨率进行截断或相乘。这个例子是输出millis。
如果你想要一个合适的Unix时间戳(以秒为单位),可以去掉* 1000
这有用吗?
from datetime import datetime
import calendar
d = datetime.utcnow()
unixtime = calendar.timegm(d.utctimetuple())
print unixtime
如何将Python UTC日期时间对象转换为UNIX时间戳