Назад | Перейти на главную страницу

Почему на этой метке времени ISO указан не 2019 год?

Для простого приложения, которое я использую для тестирования конвейера DevOps, я вывожу время начала сборки на домашнюю страницу. На моей машине разработки напечатан год метки времени ISO-8601, который я ожидаю, 2019 год (в частности, «2019-09-12T20: 11: 00.000Z»). Когда та же кодовая база создается с помощью AWS CodeBuild, временная метка ISO-8601 выглядит как «+ 051668-02-09T08: 09: 32.000Z». Что такое "+051668"? Я полагаю, это год; Я думаю, это год, представленный в другом календаре. Мысли?

AWS CodeBuild устанавливает эту переменную среды для каждой сборки (CODEBUILD_START_TIME). Я использую их последний, стандартный контейнер Ubuntu (v2.0).

Большинство обращений Google показывают, что CODEBUILD_START_TIME представлен как количество миллисекунд с 1970 года. Я подозреваю, что где-то в вашем коде вы относитесь к этому так, как если бы это были секунды.

Если вы конвертируете +051668-02-09T08:09:32.000Z до секунд вы получаете 1568320819772. Если вы разделите + на 1000, вы получите 1568320819 затем преобразуйте это обратно в удобочитаемое время, которое вы получите September 12, 2019 8:40:19.