1

我按照教程https://www.influxdata.com/blog/json-to-influxdb-with-telegraf-and-starlark/开始使用 Telegraf 和 Starlark。

我以 JSON 格式获取数据,但遵循教程并将输入视为字符串,然后使用 Starlark 进行解析。

我的问题是,我需要使用作为 JSON 输入一部分的日期时间戳。我正在使用下面的代码,如果我将它设置为一些硬编码的 Unix 纪元时间,它就可以工作

new_metric = Metric("mymetric")
new_metric.time =1615702479866917911

但是如何将我在 DD-Mon-YYYY H:M:S 格式(例如 12-Mar-2021 15:30:00 )中的日期转换为 Starlark 脚本中的 Unix 纪元格式。由于无法在 Starlark 脚本中导入任何 python 库,因此不确定如何完成此转换。

4

1 回答 1

1

metric.time = time.parse_time("12-Mar-2021 15:30:00", format="02-Jan-2006 15:04:05").unix

如果您需要设置时区(上面将解析为 UTC),您可以通过在末尾添加一个参数来实现,如下所示:

metric.time = time.parse_time("12-Mar-2021 15:30:00", format="02-Jan-2006 15:04:05", location="US/Eastern").unix

从常规时间对象中,您可以像这样获取 unix 时间:

metric.time = time.now().unix

于 2021-04-14T14:39:15.097 回答