我有以下问题,我需要将一些日期时间对象转换为 time_ns (及时存在)
我能找到的就是将现在的日期时间转换为固定的纳秒数(我知道它是从 1970 年的固定日期计算出来的)
import time
now = time.time_ns()
我想要的只是将一些正常的日期时间对象转换为固定的纳秒数
from datetime import datetime
x = datetime(2022, 2, 22, 15, 41, 50)
我不想仅限于现在的日期。库中有一些函数可以做到这一点吗?目前我找不到任何东西
非常感谢你
从python 3.3开始datetime有了时间戳函数。确保替换时区,否则将采用本地时区,如果您想要纳秒数,您可以乘以秒数。
from datetime import datetime;
print(datetime(2022,2,22,15,41,50).replace(tzinfo=timezone.utc).timestamp()*10**9)
请注意,如果您只是想将
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 中的高精度时钟