python时间函数纳秒_解析包含纳秒的日期时间字符串

您可以很自然地使用纳秒级甚至更精确的时间单位(ps,fs,as)numpy。Numpy有自己的Datetimes和Timedeltas实现,因此您可以尝试np.datetime64:

import numpy as np

def str_to_ns(time_str):

"""

input: time in a format `hh:mm:ss.up_to_9_digits`

"""

h, m, s = time_str.split(":")

int_s, ns = s.split(".")

ns = map(lambda t, unit: np.timedelta64(t, unit),

[h,m,int_s,ns.ljust(9, '0')],['h','m','s','ns'])

return sum(ns)

然后,您可以通过以下方式使用此功能:

>>> src = "1:2:34.123456789"

>>> out = str_to_ns(src)

>>> print(out)

3754123456789 nanoseconds

>>> out / np.timedelta64(1,'h')

1.0428120713302778

>>> out / np.timedelta64(1,'m')

62.568724279816664

>>> out / np.timedelta64(1,'s')

3754.123456789

算术也是可能的:

>>> t1, t2 = str_to_ns("1:0:12.12345678"), str_to_ns("1:0:12.12")

>>> t1 - t2

numpy.timedelta64(3456780,'ns')

我同意这不是很自然,但是通过这种方式,您可以使用just获得任意的高时间精度numpy。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值