我使用了一个 Ruby 脚本,将 ISO 时间戳转换为 Unix 时间戳。我要解析的文件具有以下时间戳结构:
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'
>>>
我在想这是否与我的格式设置有关?
1000.0
,从而保留毫秒。 - Lorenzo Bellifromtimestamp
函数接受 int 或者 float 类型的参数。如果你传递一个 Decimal 类型的参数,它的行为会根据你所使用的 Python 版本而有所不同。一些 Python 版本(<= 3.5?)会将其转换成 float 并按照预期工作,而 Python 3.8 会发出警告并将其转换成 int,忽略掉输入可能提供的任何毫秒数。 - Aaron