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

32

Для простого приложения, которое я использую для тестирования конвейера 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).

trycrmr
источник
1
@ AuxTaco Вау, угадайте, что это неправильно / неполно? i.imgur.com/LgnmacQ.png удалил мой комментарий
hanshenrik
1
@hanshenrik Эта грамматика вообще не допускает пятизначных лет. Стесняюсь сказать, что это неправильно , поскольку расширенные годы «допускаются только по взаимному согласию партнеров по обмену информацией».
AuxTaco

Ответы:

66

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

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

Zoredache
источник
4
Да, тестовые данные были меткой времени Unix в секундах! Думаю, я получил эту метку времени непосредственно из журналов CodeBuild, но не думаю.
trycrmr
9
Плохие документы тоже; Amazon просто говорит «время начала сборки» 😒
Гонки
4
Предоставил некоторые отзывы для документации, чтобы быть более точным о отметке времени по ссылке в правом нижнем углу docs.aws.amazon.com/codebuild/latest/userguide/… .
trycrmr