Python 需要以微秒为小数点的时间戳
目前,我正在使用time.time()创建包含微时间的时间戳。但我主要是将它们与十进制和time进行比较。time()返回一个浮点 目前,我在需要时将浮点值转换为十进制值:Python 需要以微秒为小数点的时间戳,python,datetime,microtime,Python,Datetime,Microtime,目前,我正在使用time.time()创建包含微时间的时间戳。但我主要是将它们与十进制和time进行比较。time()返回一个浮点 目前,我在需要时将浮点值转换为十进制值: if type(stamp) == float: stamp = Decimal(format(stamp, '.15g')) 当然,当我这样做的时候,我会失去一些精确性。还有什么方法可以得到微秒小数 您可以直接将浮点传递给十进制构造函数: d = Decimal(stamp) CPythonfloat使
if type(stamp) == float:
stamp = Decimal(format(stamp, '.15g'))
当然,当我这样做的时候,我会失去一些精确性。还有什么方法可以得到微秒小数 您可以直接将
浮点
传递给十进制
构造函数:
d = Decimal(stamp)
CPythonfloat
使用Cdouble
,其精度足以表示通常时间戳范围内的微秒
time.time()
和datetime.utcnow()
可能会产生稍微不同的结果。后者四舍五入为微秒:
from datetime import datetime
from decimal import Decimal
td = datetime.utcnow() - datetime(1970, 1, 1)
timestamp_microseconds = (td.days*86400 + td.seconds)*10**6 + td.microseconds
d = Decimal(timestamp_microseconds).scaleb(-6)
结果应等于十进制(time.time()),精度为微秒。谢谢!我没有意识到我可以将浮点传递给十进制构造函数。看起来这是在2.7中添加的。令人惊叹的。然而,我确实得到了一些有趣的结果:愚蠢的5分钟规则:)谢谢!我没有意识到我可以将浮点传递给十进制构造函数。看起来我已经解决了我的问题。。。我的django模型是以小数点到6位的形式创建的,在某些情况下,它会与我前面提到的浮点值进行比较。我的问题是,将计算为6位的十进制数与一个仅仅是浮点数的浮点数进行比较