gpt4 book ai didi

python - 以毫秒为单位的纪元时间转换为日期时间

转载 作者:IT老高 更新时间:2023-10-28 21:44:27 28 4
gpt4 key购买 nike

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

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'

关于python - 以毫秒为单位的纪元时间转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21787496/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com