以毫秒精度浮动的python datetime

2024-06-16 12:08:14 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中,如何以毫秒级的精度将日期和时间信息存储在浮点中? 编辑:我正在使用Python2.7

我已经把下面的东西拼凑在一起了:

DT = datetime.datetime(2016,01,30,15,16,19,234000) #trailing zeros are required
DN = (DT - datetime.datetime(2000,1,1)).total_seconds()
print repr(DN)

输出:

507482179.234

然后要返回到日期时间:

DT2 = datetime.datetime(2000,1,1) + datetime.timedelta(0, DN)
print DT2

输出:

2016-01-30 15:16:19.234000

但我真的在寻找一种更优雅、更健壮的东西。

在matlab中,我将使用datenumdatetime函数:

DN = datenum(datetime(2016,01,30,15,16,19.234))

要恢复:

DT = datetime(DN,'ConvertFrom','datenum')

Tags: 信息编辑datetime时间dtzerosrequired精度
2条回答

可能是timestamp(和fromtimestamp

>>> from datetime import datetime
>>> now = datetime.now()
>>> now.timestamp()
1455188621.063099
>>> ts = now.timestamp()
>>> datetime.fromtimestamp(ts)
datetime.datetime(2016, 2, 11, 11, 3, 41, 63098)

Python2:

def datetime_to_float(d):
    epoch = datetime.datetime.utcfromtimestamp(0)
    total_seconds =  (d - epoch).total_seconds()
    # total_seconds will be in decimals (millisecond precision)
    return total_seconds

def float_to_datetime(fl):
    return datetime.datetime.fromtimestamp(fl)

Python3:

def datetime_to_float(d):
    return d.timestamp()

python 3版本的float_to_datetime与上面的python 2版本没有区别。

相关问题 更多 >