'Unknown' 以纪元转换时的时间戳格式

'Unknown' timestamp format while converting in epoch

我想将此“2018-03-15T05:13:24.000-0400”日期时间格式转换为纪元时间格式。转换时出现时间格式错误。请帮我解决这个问题。

这是我的 python 代码:

import time

start='2018-03-15T05:13:24.000-0400'
start1 = str(start)
start_date = int(time.mktime(time.strptime(start1,'%Y-%m-%d %H:%M:%S')))*1000
print(start_date)

预期输出:

1521105204000

谢谢:)

首先,您的 strptime format 必须实际匹配您传递给它的字符串。让我们分解一下:

  • 2018, 4 位数年份: %Y
  • -,文字连字符:-
  • 03,2 位数月份:%m
  • -,文字连字符:-
  • 15, 2 位数日: %d
  • T、ISO-style date/time 分隔符:T(不是您格式中的 space)
  • 05,2 位数小时:%H
  • :,直译冒号::
  • 13,2 位数分钟:%M
  • :,直译冒号::
  • 24, 2 位数秒: %S
  • .,字面点:.
  • 000,3位毫秒,可以解析为3位微秒,稍后修正:%f
  • -0400,5 个字符的 UTC 偏移量,%z

接下来,由于某些原因使用time模块而不是datetime,并且使用不支持sub-second次的struct_tm类型,然后无论如何截断为 int,即使您显然想要毫秒,但 %f 微秒值最终将被忽略,因此您甚至不必修复它。

所以只要把这个字符串放在一起,就大功告成了。