关于数量级
1 2 3 4 5 6 7 8 9 10
| 1 秒 1, 000 毫秒 1, 000, 000 微秒 1, 000, 000, 000 纳秒
对于一个纳秒时间戳: 1700621512995758338. 纳秒 1700621512995758.338 微秒 1700621512995.758338 毫秒 1700621512.995758338 秒
|
转换代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from datetime import datetime
nano_second_timestamp = 1635678377992198863
second_timestamp = nano_second_timestamp / 1000000000
d = datetime.fromtimestamp(second_timestamp)
formatted_time = d.strftime('%Y-%m-%d %H:%M:%S.%f')
print(formatted_time)
|
在上述代码中,最后的时间字符串格式为 '%Y-%m-%d %H:%M:%S.%f'
其中 %Y 代表年份,%m 代表月份,%d 代表日期,%H 代表小时,%M 代表分钟,%S 代表秒,%f 代表微秒
注意,datetime 的时间格式化只能精确到微秒级别。范围在 0~999999 之间,所以需要对纳秒时间戳进行转换后,取后六位代表微秒。
反过来的话,会出现下面这种情况:
1 2 3 4 5 6 7
| from datetime import datetime
time = '2022-07-14T12:01:25.225089+08:00' date = datetime.fromisoformat(time)
time = '2022-07-14T12:01:25.225089838+08:00' date = datetime.fromisoformat(time)
|
参考:
Convert an RFC 3339 nano time to Python datetime