【问题标题】:python: change time to int from "2009-11-10T23:00:00Z"python:将时间从“2009-11-10T23:00:00Z”更改为 int
【发布时间】:2018-06-29 12:52:00
【问题描述】:

谁能帮我把时间转换成 influx db 接受的格式。目的是将时间(包括毫秒)传递给 influxdb。

谢谢

【问题讨论】:

标签: python datetime influxdb


【解决方案1】:

influxDB 可能需要纪元时间

试试:

import datetime
import time

t = "2009-11-10T23:00:00Z"
print( time.mktime(datetime.datetime.strptime(t, "%Y-%m-%dT%H:%M:%SZ").timetuple()) )

输出:

1257874200.0

【讨论】:

  • 谢谢。我需要它到毫秒。我正在读取传感器数据并每秒读取许多读数。
  • 但是你的来源只有几秒钟
  • 对不起,我的错。我从 InfluxDB 网站上的示例中知道该格式被接受,但我需要将其降低到毫秒。很抱歉有任何混淆。我在 python 脚本中动态创建时间。
  • 如果你有毫秒,你可以使用%f。例如:print( time.mktime(datetime.datetime.strptime(t, "%Y-%m-%dT%H:%M:%S.%fZ").timetuple()) )
【解决方案2】:

在 Python 中,您可以将字符串表示形式转换为 datetime 对象,将其转换为 struct_time,然后将其转换为表示 UNIX epoch time 的整数。

from datetime import datetime
from time import mktime

time_str = "2009-11-10T23:00:00Z"
time_fmt = "%Y-%m-%dT%H:%M:%SZ"
dt = datetime.strptime(time_str, time_fmt)
time_tuple = dt.timetuple()
epoch = mktime(time_tuple)
print(epoch)

输出:

1257912000.0

【讨论】:

  • 谢谢。我需要它到毫秒。我正在读取传感器数据并每秒读取许多读数。
猜你喜欢
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 2012-04-30
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-07
相关资源
最近更新 更多