Mengapa tahun dalam cap waktu ISO ini bukan tahun 2019?

32

Untuk aplikasi sederhana yang saya gunakan untuk menguji pipa devops, saya mengeluarkan waktu mulai membangun ke beranda. Pada mesin pengembangan saya, tahun cap waktu ISO-8601 yang saya harapkan, 2019, dicetak (khusus, "2019-09-12T20: 11: 00.000Z"). Ketika basis kode yang sama dibangun menggunakan AWS CodeBuild timestamp ISO-8601 terlihat seperti "+ 051668-02-09T08: 09: 32.000Z". Apa itu "+051668"? Saya kira ini tahun; Tebakan terbaik saya adalah tahun yang direpresentasikan sebagai kalender yang berbeda. Pikiran?

AWS CodeBuild menetapkan variabel lingkungan ini untuk setiap bangunan (CODEBUILD_START_TIME). Saya sedang membangun dengan wadah Ubuntu terbaru, default, mereka (v2.0).

trycrmr
sumber
1
@AuxTaco wow, kira ini salah / tidak lengkap? i.imgur.com/LgnmacQ.png , menghapus komentar saya
hanshenrik
1
@hanshenrik Tata bahasa itu tampaknya tidak memungkinkan selama lima digit tahun sama sekali. Saya ragu mengatakan itu salah , karena tahun-tahun yang diperluas "hanya diizinkan dengan kesepakatan bersama para mitra dalam pertukaran informasi."
AuxTaco

Jawaban:

66

Sebagian besar klik google menunjukkan CODEBUILD_START_TIME direpresentasikan sebagai jumlah milidetik sejak tahun 1970. Saya menduga di suatu tempat dalam kode Anda, Anda memperlakukannya seolah-olah itu detik.

Jika Anda mengonversi +051668-02-09T08:09:32.000Zke detik, Anda dapat 1568320819772. Jika Anda membagi + bulat itu dengan 1000 yang Anda dapatkan 1568320819kemudian mengubahnya kembali menjadi waktu yang dapat dibaca manusia Anda dapatkan September 12, 2019 8:40:19.

Sakit kepala
sumber
4
Yap, data pengujian adalah cap waktu unix dalam hitungan detik! Kupikir aku telah mengambil stempel waktu itu langsung dari log CodeBuild, tapi kurasa tidak.
trycrmr
9
Dokumen buruk juga; Amazon hanya mengatakan "waktu mulai membangun" 😒
Lightness Races dengan Monica
4
Memberikan umpan balik agar dokumen lebih spesifik tentang stempel waktu melalui tautan di kanan bawah docs.aws.amazon.com/codebuild/latest/userguide/… .
trycrmr