python - 将日期时间格式转换为时间戳
问题描述
这是我的代码:
from dateutil import parser
import datetime
rTime = '2020-06-22T17:19:37.729000Z'
dateTimeRes = parser.isoparse(rTime)
naive = dateTimeRes.replace(tzinfo=None)
lastTime = (naive-datetime.datetime(1970,1,1)).total_seconds()
print ("Seconds : {}".format(lastTime))
输出 :
python test.py
Seconds : 1592846377.73
但预计'1592846377729000000'
解决方案
一旦你有一个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
推荐阅读
- swift - 'OpaquePointer' 类型的值没有成员 'pointee'
- android - 如何排除故障:AAPT:错误:与属性 src (attr) 参考不兼容|颜色
- sql-server - 如何部署具有多个主题和表目标的 kafka sink 连接
- python - 如何从自定义函数输出熊猫数据框?
- python - 与预测相关的东西
- r - 用 r 中的月份替换 xlimit 值
- javascript - Uncaught TypeError: Object(...) is not a function at HTMLButtonElement.addHandleSubmit
- powerbi - Power BI:如何过滤表以仅显示每个项目的最近日期
- c - 如何根据目标更改 Makefile 依赖文件列表
- opengl - 如何在多个窗口 SFML 和 GLFW 中渲染和获取输入?