Разница в отметках времени через запрос puppetdb и запрос mysql

Я храню отчеты с узлов в puppetdb. Я хочу проверить время получения отчетов с определенного узла с помощью следующего запроса:

curl -sk http://pdb:8080/v3/reports --data-urlencode 'query=["=", "certname", "host.mydomain.com"]' | grep "receive-time"

Я получаю следующий результат:

"receive-time" : "2015-12-05T11:57:13.882Z",
"receive-time" : "2015-12-05T11:46:26.826Z",
"receive-time" : "2015-12-05T11:17:15.702Z",
"receive-time" : "2015-12-05T13:13:56.060Z",

Итак, я могу сделать вывод, что у меня есть 4 отчета с 09:32: 15 до 11:32:13. И это неправильно (смещение 2 часа)

С другой стороны, когда я запрашиваю серверную часть postgresdb напрямую через

select certname,puppet_version,start_time, status_id from reports where certname = 'host.mydomain.com' order by start_time desc; i get different times:

 host.mydomain.com | 3.8.1   | 2015-12-05 13:57:07.079+02 |    2
 host.mydomain.com | 3.8.1   | 2015-12-05 13:46:19.658+02 |    2
 host.mydomain.com | 3.8.1   | 2015-12-05 13:17:07.056+02 |    2
 host.mydomain.dom | 3.8.1   | 2015-12-05 13:13:56.608+02 |    2

И это правильное время для отчетов. Все настройки для часового пояса сервера, на котором выполняется puppetdb верны. Все настройки postgresdb установлены на один и тот же часовой пояс.

Как я могу сделать запрос через отчет curl, пожалуйста, верное время?

1
задан 5 December 2015 в 14:41
1 ответ

Заглавная Z после отметки времени, например 2015-12-05T11: 32: 13.718Z означает зулусское время, UTC.

Другая отметка времени 2015-12-05 13: 57: 07.079 + 02 с + 2 - это время, скорректированное для вашего местного часового пояса, два часа впереди UTC.

Итак, они оба верны в абсолютном смысле, но вам нужно добавить два часа к отметке времени в UTC, чтобы она соответствовала вашим часам.

1
ответ дан 3 December 2019 в 23:55

Теги

Похожие вопросы