Gawk mktime() 为 InfluxDB 生成不正确的时间戳
Gawk mktime() generates incorrect Timestamp for InfluxDB
我正在使用 curl 将一些数据解析到 InfluxDB。数据点是 Netflow 记录,我正在尝试将 Netflow 时间戳转换为 InfluxDB 所需的精度格式。
我原来的时间戳是这样的:
2016-11-22 04:23:25.0
我正在使用 sed 将“-”和“:”替换为空格:
sed 's/-/ /g' | \
sed 's/:/ /g' | \
这导致:
2016 11 22 04 23 25.0
然后我使用这些字段传递给 gawk mktime()。这似乎生成了正确的时间戳,但当我使用 Grafana 查看原始记录时,它们都显示了 1969 年的时间戳。我确定我忽略了一些明显的东西?
没有理由使用 Sed:
$ echo '2016-11-22 04:23:25.0' | awk '{gsub(/[-:]/, FS); print mktime([=10=])}'
1479810205
生成的时间戳是正确的:
$ date --date=@1479810205
Tue, Nov 22, 2016 4:23:25 AM
我正在使用 curl 将一些数据解析到 InfluxDB。数据点是 Netflow 记录,我正在尝试将 Netflow 时间戳转换为 InfluxDB 所需的精度格式。
我原来的时间戳是这样的:
2016-11-22 04:23:25.0
我正在使用 sed 将“-”和“:”替换为空格:
sed 's/-/ /g' | \
sed 's/:/ /g' | \
这导致:
2016 11 22 04 23 25.0
然后我使用这些字段传递给 gawk mktime()。这似乎生成了正确的时间戳,但当我使用 Grafana 查看原始记录时,它们都显示了 1969 年的时间戳。我确定我忽略了一些明显的东西?
没有理由使用 Sed:
$ echo '2016-11-22 04:23:25.0' | awk '{gsub(/[-:]/, FS); print mktime([=10=])}' 1479810205
生成的时间戳是正确的:
$ date --date=@1479810205 Tue, Nov 22, 2016 4:23:25 AM