程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

将纪元时间以毫秒转换为日期时间

发布于2019-08-24 14:24     阅读(465)     评论(0)     点赞(29)     收藏(2)


我使用ruby脚本将iso时间戳转换为epoch,我正在解析的文件具有以下时间戳结构:

2009-03-08T00:27:31.807

因为我想保持毫秒,我使用遵循ruby代码将其转换为纪元时间:

irb(main):010:0> DateTime.parse('2009-03-08T00:27:31.807').strftime("%Q")
=> "1236472051807"

但在python我试过以下:

import time 
time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(1236472051807))

但我没有得到原来的时间日期时间,

>>> time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(1236472051807))
'41152-03-29 02:50:07'
>>> 

我想知道它是如何格式化的?


解决方案


用途datetime.datetime.fromtimestamp

>>> import datetime
>>> s = 1236472051807 / 1000.0
>>> datetime.datetime.fromtimestamp(s).strftime('%Y-%m-%d %H:%M:%S.%f')
'2009-03-08 09:27:31.807000'

%f指令仅受支持datetime.datetime.strftime,而不是由time.strftime

更新替代使用%str.format

>>> import time
>>> s, ms = divmod(1236472051807, 1000)  # (1236472051, 807)
>>> '%s.%03d' % (time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(s)), ms)
'2009-03-08 00:27:31.807'
>>> '{}.{:03d}'.format(time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(s)), ms)
'2009-03-08 00:27:31.807'


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/57026/8e01ae38e7c008c82008/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

29 0
收藏该文
已收藏

评论内容:(最多支持255个字符)