将python日期时间转换为以毫秒为单位的时间戳

新手上路,请多包涵

如何将诸如 20.12.2016 09:38:42,76 类的人类可读时间转换为以 毫秒为单位 的 Unix 时间戳?

原文由 Tom 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

在 Python 3 中,这可以分两步完成:

  1. 将时间字符串转换为 datetime 对象
  2. datetime 对象的时间戳乘以 1000,将其转换为毫秒。

例如像这样:

 from datetime import datetime

dt_obj = datetime.strptime('20.12.2016 09:38:42,76',
                           '%d.%m.%Y %H:%M:%S,%f')
millisec = dt_obj.timestamp() * 1000

print(millisec)

输出:

 1482223122760.0

strptime 接受您的时间字符串和格式字符串作为输入。时间字符串(第一个参数)指定 实际要转换为 datetime 对象的内容。格式字符串(第二个参数)指定您传递的字符串的实际 _格式_。

以下是 官方文档 中格式说明符的解释:

  • %d - 以零填充的十进制数表示的月份中的第几天。
  • %m - 月份作为零填充的十进制数。
  • %Y - 以世纪为十进制数的年份
  • %H - 小时(24 小时制)作为零填充的十进制数。
  • %M - 分钟作为零填充的十进制数。
  • %S - 第二个作为零填充的十进制数。
  • %f - 微秒作为十进制数,零填充为 6 位数字。

原文由 Milo 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于那些在没有解析和丢失毫秒的情况下搜索答案的人,给定 dt_obj 是一个日期时间:

仅限python3,优雅

int(dt_obj.timestamp() * 1000)

python2 和 python3 兼容:

 import time

int(time.mktime(dt_obj.utctimetuple()) * 1000 + dt_obj.microsecond / 1000)

原文由 Ivan Klass 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题