Если у вас есть объект datetime
(здесь naive
), его легко преобразовать в метку времени наносекунд, потому что метод timestamp
возвращает число секунд с плавающей запятой:
ts = int(naive.timestamp() * 1000000) * 1000
Просто вы должны сначала вычислить микросекунды как целое число, чтобы предотвратить неточность с плавающей запятой, чтобы дать неправильное число наносекунд: int(naive.timestamp() * 1000000000)
- неточное значение 1592839177729000192
.
Кстати, в основном используются наносекундные метки времени в numpy или Pandas. Если вы их используете, вы можете напрямую использовать numpy:
rTime = '2020-06-22T17:19:37.729000Z'
ts = np.int64(np.datetime64(rTime))
, что дает, как и ожидалось, 1592846377729000