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 年的时间戳。我确定我忽略了一些明显的东西?

  1. 没有理由使用 Sed:

    $ echo '2016-11-22 04:23:25.0' | awk '{gsub(/[-:]/, FS); print mktime([=10=])}'
    1479810205
    
  2. 生成的时间戳是正确的:

    $ date --date=@1479810205
    Tue, Nov 22, 2016  4:23:25 AM