关于python:以Unix时间戳格式获取当前GMT时间的最简单方法是什么?

What is the easiest way to get current GMT time in Unix timestamp format?

python提供了不同的包(datetimetimecalendar,可以在这里看到,以便处理时间。我犯了一个很大的错误,用以下方法得到了当前的格林威治时间time.mktime(datetime.datetime.utcnow().timetuple())

在Unix时间戳中获取当前GMT时间的简单方法是什么?


我将使用time.time()以秒为单位获取时间戳。

1
2
3
import time

time.time()

输出:

1
1369550494.884832

对于大多数平台上的标准CPython实现,这将返回一个UTC值。


1
2
3
import time

int(time.time())

输出:

1
1521462189


这有帮助吗?

1
2
3
4
5
6
from datetime import datetime
import calendar

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

如何将python utc datetime对象转换为unix时间戳


或者只是使用日期时间标准模块

1
2
3
4
In [2]: from datetime import timezone, datetime
   ...: int(datetime.now(tz=timezone.utc).timestamp() * 1000)
   ...:
Out[2]: 1514901741720

根据需要的分辨率,可以截断或乘法。这个例子是输出毫秒。

如果需要适当的UNIX时间戳(以秒为单位),请删除* 1000


我喜欢这种方法:

1
2
3
4
import datetime, time

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

这里发布的其他方法要么不能保证在所有平台上都提供UTC,要么只报告整秒钟。如果你想要完全的分辨率,这是可行的,微秒。


1
2
from datetime import datetime as dt
dt.utcnow().strftime("%s")

输出:

1
1544524990