如何将datetime对象转换为time_ns

问题描述 投票:0回答:2

我有以下问题,我需要将一些日期时间对象转换为 time_ns (及时存在)

我能找到的就是将现在的日期时间转换为固定的纳秒数(我知道它是从 1970 年的固定日期计算出来的)

import time
now = time.time_ns()

我想要的只是将一些正常的日期时间对象转换为固定的纳秒数

from datetime import datetime
x = datetime(2022, 2, 22, 15, 41, 50)

我不想仅限于现在的日期。库中有一些函数可以做到这一点吗?目前我找不到任何东西

非常感谢你

python datetime time epoch
2个回答
1
投票

从python 3.3开始datetime有了时间戳函数。确保替换时区,否则将采用本地时区,如果您想要纳秒数,您可以乘以秒数。

from datetime import datetime; 
print(datetime(2022,2,22,15,41,50).replace(tzinfo=timezone.utc).timestamp()*10**9)

0
投票

请注意,如果您只是想将

time.time()
time.time_ns()
转换为日期和时间,请使用
time.localtime()
time.gmtime()

请参阅此处每个函数的各种参考文档描述:https://docs.python.org/3/library/time.html#time.time:

示例:

>>> import time
>>> time.time_ns()
1691443244384978570
>>> time.localtime(time.time_ns()/1e9)
time.struct_time(tm_year=2023, tm_mon=8, tm_mday=7, tm_hour=14, tm_min=20, tm_sec=57, tm_wday=0, tm_yday=219, tm_isdst=0)
>>> time.time_ns()/1e9
1691443263.0889063
>>> time.localtime(time.time())
time.struct_time(tm_year=2023, tm_mon=8, tm_mday=7, tm_hour=14, tm_min=23, tm_sec=22, tm_wday=0, tm_yday=219, tm_isdst=0)

这就是我在这里的更大答案:Python 中的高精度时钟

© www.soinside.com 2019 - 2024. All rights reserved.