Python Pitfall: 时间戳长度- 10位和13位时间戳

但今天发现了一个奇特的问题,同样是时间戳怎么我的长度和网上不太一样呢?

我用下面这种方法获取时间戳:

import time
ts = int(time.time())
print(ts)
1598634465

得到的结果是一个10位的整数int,但当我给服务器发请求的时候,URL里面却填的是13位数,我就震惊了。

Solution:

注意10位的时间戳已经能够精确到秒单位,所以我们的应用不需要毫秒级别的精确度时,只需要添上3个0就可以了
 

import time
ts = int(time.time()) * 1000
print(ts)
1598634465000

 但是当我们需要真的精确到毫秒级别,那也很简单:

import time
ts = int(round(time.time(),3) * 1000)
print(ts)
1598634414932

小结:

如果仅在单个程序内部使用,这可能不是一个问题,但当需要和上下游系统交互时,需要先检查上下游系统采用的是什么样的时间戳,可能下游是一个http请求,如果服务器没有对此做特别处理,很容易导致请求失败。如果是向数据库插入一组数据,数据库被错误的格式污染,就会导致很多麻烦。 

日常填坑思路,你学废了吗?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值