问题:以Unix时间戳格式获取当前GMT时间的最简单方法是什么?
Python提供不同的套餐(datetime
,time
,calendar
),可以看出这里为了应对时间。我通过使用以下命令获取当前GMT时间犯了一个大错误time.mktime(datetime.datetime.utcnow().timetuple())
在Unix时间戳中获取当前GMT时间的简单方法是什么?
回答 0
我将使用time.time()获得自该纪元以来的时间戳(以秒为单位)。
import time
time.time()
输出:
1369550494.884832
对于大多数平台上的标准CPython实现,这将返回UTC值。
回答 1
import time
int(time.time())
输出:
1521462189
回答 2
这有帮助吗?
from datetime import datetime
import calendar
d = datetime.utcnow()
unixtime = calendar.timegm(d.utctimetuple())
print unixtime
回答 3
或者只是简单地使用datetime标准模块
In [2]: from datetime import timezone, datetime
...: int(datetime.now(tz=timezone.utc).timestamp() * 1000)
...:
Out[2]: 1514901741720
您可以截断或乘以所需的分辨率。此示例输出毫。
如果您想要正确的Unix时间戳(以秒为单位),请删除* 1000
回答 4
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()
回答 5
我喜欢这种方法:
import datetime, time
dts = datetime.datetime.utcnow()
epochtime = round(time.mktime(dts.timetuple()) + dts.microsecond/1e6)
此处发布的其他方法不能保证在所有平台上都具有UTC,或者只能报告整秒。如果您想获得完整的分辨率,则可以达到微秒级。
回答 6
from datetime import datetime as dt
dt.utcnow().strftime("%s")
输出:
1544524990
回答 7
#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
- 在这里,我们可以看到第一个示例比第二个示例提供了更准确的时间。
- 在这里,我正在使用第一个。
回答 8
至少在python3中,这有效:
>>> datetime.strftime(datetime.utcnow(), "%s")
'1587503279'
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。