【问题标题】:Python3 Timestamp to unix time (with sometime milliseconds)Python3时间戳到unix时间(有时毫秒)
【发布时间】:2018-06-25 15:37:11
【问题描述】:

我正在尝试将时间戳转换为 unix 时间。

时间戳如下所示:
2018-01-16T20:26:16.35

所以现在我使用这个代码:

timestamp = '2018-01-16T20:26:16.35'
ts = timestamp.replace("T", " ")
tsUnix = time.mktime(datetime.datetime.strptime(ts, "%Y-%m-%d %H:%M:%S.%f").timetuple())

有时,从中获取时间戳的 api 会给我时间没有毫秒
这将导致错误“与格式不匹配”​​。 (呃,%f 不在里面)

我是否需要编写一个变通方案或是否有此功能?有没有更好的方法从原始时间码中去除“T”?

【问题讨论】:

  • 使用try/except 块。尝试以毫秒为单位的格式,捕获异常并尝试没有的格式。
  • 我认为你不需要去掉“T”。您可以像这样简单地在模式中指定“T”:tsUnix = time.mktime(datetime.datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S.%f").timetuple())
  • 感谢使用 'T' 也有效 :)

标签: python python-3.x timestamp unix-timestamp


【解决方案1】:

要跳过ts = timestamp.replace("T", " "),请在格式字符串中添加一个 T

timestamp = '2018-01-16T20:26:16.35'
time.mktime(datetime.datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%S.%f").timetuple())
# returns 1516130776.0

要修复毫秒,您可以使用 python-dateutil 包

from dateutil import parser

raw_timestamp = '2018-01-16T20:26:16.35'
parsed_time = parser.parse(raw_timestamp)
timestamp = parsed_time.timestamp()

【讨论】:

    【解决方案2】:

    这是处理您的问题的一种方法,使用 tryexcept

    import time
    import datetime
    
    def get_ts_unix(ts):
        try:
            tsUnix = time.mktime(
                datetime.datetime.strptime(ts, "%Y-%m-%dT%H:%M:%S.%f").timetuple()
            )
        except ValueError:
            tsUnix = time.mktime(
                datetime.datetime.strptime(ts, "%Y-%m-%dT%H:%M:%S").timetuple()
            )
        return tsUnix
    

    例子:

    timestamps = ['2018-01-16T20:26:16.35', '2018-01-16T20:26:16']
    for ts in timestamps:
        print("%-24s: %f" % (ts, get_ts_unix(ts)))
    

    输出:

    2018-01-16T20:26:16.35  : 1516152376.000000
    2018-01-16T20:26:16     : 1516152376.000000
    

    【讨论】:

    • 酷,是的,这行得通!我也做了这个解决方法:if '.' not in ts: ts += '.0'
    猜你喜欢
    • 1970-01-01
    • 2011-12-30
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 2013-04-18
    相关资源
    最近更新 更多