将弹性搜索时间戳属性转换为秒

时间:2016-08-07 20:13:44

标签: python elasticsearch timestamp

如何将此时间戳值转换为表示自python以来的秒数的整数

 2016-08-06T06:07:36.349Z

这是我在弹性搜索查询中收到的时间戳值。

我尝试过搜索,但时间戳格式与此不同,this没有帮助任何其他

1 个答案:

答案 0 :(得分:4)

您可以使用python内置的datetime包及其strptime方法将字符串转换为datetime对象。

from datetime import datetime
datetime.strptime("2016-08-06T06:07:36.349Z","%Y-%m-%dT%H:%M:%S.%fZ")

之后你应该得到你可以通过

得到的纪元日期时间对象
epoch = datetime.utcfromtimestamp(0)

您的最终秒数可以从此方法中获得

def unix_time_millis(datetime):
    return (datetime - epoch).total_seconds() * 1000.0

所以你的完整代码看起来像是

from datetime import datetime

epoch = datetime.utcfromtimestamp(0)

def unix_time_millis(datetime):
    return (datetime - epoch).total_seconds() * 1000.0

current_date = datetime.strptime("2016-08-06T06:07:36.349Z","%Y-%m-%dT%H:%M:%S.%fZ")
print unix_time_millis(current_date)

这个答案的灵感来自这个答案https://stackoverflow.com/a/11111177/4453633