【问题标题】:'Unknown' timestamp format while converting in epoch在纪元中转换时的“未知”时间戳格式
【发布时间】:2018-09-13 14:04:27
【问题描述】:

我想将此 '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

谢谢:)

【问题讨论】:

    标签: python python-3.x datetime-format epoch


    【解决方案1】:

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

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

    接下来,由于某种原因使用time 模块而不是datetime,并使用不支持亚秒级时间的struct_tm 类型,然后无论如何都截断为int,即使您显然需要毫秒,%f 微秒值最终会被忽略,所以你甚至不必修复它。

    所以只要把这个字符串放在一起,你就完成了。

    【讨论】:

    • 谢谢。我无法理解-400 属于哪个类别。但是,现在我清楚了。
    • 请不要尝试编辑此答案以仅提供代码而不是解释要做什么。任何不知道如何将字符串组合在一起的人都需要阅读本文以了解它的作用,而不仅仅是盲目地复制和粘贴。
    猜你喜欢
    • 1970-01-01
    • 2014-01-25
    • 2020-06-24
    • 2014-10-12
    • 1970-01-01
    • 2019-11-14
    • 2010-09-12
    • 1970-01-01
    • 2017-07-02
    相关资源
    最近更新 更多