Python3时间戳到unix时间(有时是毫秒)

2024-10-04 05:26:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将时间戳转换为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给了我时间而不是毫秒
这将导致错误“与格式不匹配”。(Duh,%f不在里面)

我需要编写一个解决方法的脚本还是有一个函数用于此?还有没有更好的方法可以把“T”从原来的时间码中去掉吗?在


Tags: 方法代码apidatetimetime错误时间unix
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

示例:

^{pr2}$

输出:

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

要跳过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包

^{pr2}$

相关问题 更多 >