关于数量级
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