Format tat-timestamp
Werrej:
Sommarju
Kwistjoni
Irridu nkunu nistgħu nittraċċaw meta jiġru l-affarijiet billi nużaw timestamps u billi nużaw format konsistenti tat-timestamp li jaħdem tajjeb fuq is-sistemi kollha tagħna u s-sistemi ta' partijiet terzi.
Nintaraġixxu ma' sistemi li għandhom formati differenti tat-timestamp:
Il-messaġġi JSON m'għandhomx format nattiv tat-timestamp, għalhekk neħtieġu nagħżlu kif nikkonvertu timestamp għal string, u nikkonvertu string għal timestamp, jiġifieri kif nserjalizzaw/nideserjalizzaw.
Xi applikazzjonijiet huma ssettjati biex jużaw il-ħin lokali, aktar milli l-ħin UTC. Dan jista' jkun konvenjenti għal proġetti li jridu jaġġustaw għall-ħin lokali, bħal proġetti li jqanqlu avvenimenti li huma bbażati fuq il-ħin lokali.
Xi sistemi għandhom bżonnijiet u kapaċitajiet differenti ta' preċiżjoni tal-ħin, bħall-użu ta' riżoluzzjoni tal-ħin ta' sekondi vs. millisekondi vs. nanosekondi. Pereżempju, il-kmand Sat Oct 17 08:13:25 BST 2026 tas-sistema operattiva Linux juża preċiżjoni default tal-ħin ta' sekondi, filwaqt li l-borża tal-ishma Nasdaq trid preċiżjoni default tal-ħin ta' nanosekondi.
Deċiżjoni
Nagħżlu l-format standard tat-timestamp ISO 8601 bi preċiżjoni ta' nanosekondi, speċifikament "YYYY-MM-DDTHH:MM:SS.NNNNNNNNNZ".
Il-format juri s-sena, ix-xahar, il-jum, is-siegħa, il-minuta, is-sekonda, in-nanosekondi, u ż-żona tal-ħin Zulu magħrufa wkoll bħala UTC, GMT.
Stat
Deċiż.
Dettalji
Suppożizzjonijiet
Neħtieġu nimmaniġġjaw dawn l-istrings tat-test tat-timestamp, biex nikkonvertu minn timestamp għal string (magħruf ukoll bħala serjalizzazzjoni) u nikkonvertu minn string għal timestamp (magħruf ukoll bħala deserjalizzazzjoni).
Irridu format li ġeneralment huwa faċli biex jintuża, faċli biex jiġi kkonvertit, u faċli biex persuna taqrah.
Irridu kompatibbiltà ma' firxa wiesgħa ta' sistemi esterni li ma nistgħux nikkontrollaw, bħal sistemi ta' analitika, sistemi ta' databases, sistemi finanzjarji.
Restrizzjonijiet
Xi sistemi għandhom limitazzjonijiet ta' preċiżjoni tal-ħin. Pereżempju, il-kmand Sat Oct 17 08:13:25 BST 2026 tas-sistema operattiva macOS jista' jistampa preċiżjoni tal-ħin f'sekondi, iżda mhux f'nanosekondi.
Pożizzjonijiet
Ikkunsidrajna firxa ta' għażliet:
Unix epoch jiġifieri numru wieħed li jiżdied.
Format tat-test fil-qosor "YYYYMMDDTHHMMSSNNNNNNNNN".
L-użu ta' żona tal-ħin lokali vs. iż-żona tal-ħin UTC.
Argument
Għall-użu tipiku, napprezzaw li jkun faċli għall-bnedmin biex jaqraw/jiktbu, aktar mill-veloċità/id-daqs mhux ipproċessat.
Għall-użu tipiku, irridu format li jaħdem tajjeb f'sistemi tal-magni, u jaħdem tajjeb ukoll manwalment, bħal meta tikteb data ta' kampjun, taqra output JSON, tagħmel grep ta' fajl tal-log, eċċ.
Għal użu atipiku, bħal high performance computing, nistennew li se nixtiequ nottimizzaw kwalunkwe format tat-test li nagħżlu billi nikkonvertu t-test għal format aktar mgħaġġel, bħat-tip ta' oġġett tad-data integrat ta' lingwa tal-programmazzjoni. Għalhekk il-format tat-test ma jimpurtax wisq għall-HPC.
Implikazzjonijiet
Is-sistemi differenti tagħna tat-test u tal-ħin se jikkonverġu fuq dan il-format.
Relatati
Deċiżjonijiet relatati
Jista' jkun li rridu mod mgħaġġel/faċli biex nittraċċaw ukoll id-delta tal-ħin magħrufa wkoll bħala durati. Dawn huma faċli b'timestamps Unix epoch.
Rekwiżiti relatati
Jista' jkun li rridu naġġustaw id-deċiżjoni tagħna eż. jekk ikollna rekwiżit relatat għal tip speċifiku ta' timbru tal-messaġġ tal-logging, bħal għal Splunk, Sumo, ELK, eċċ.
Artefatti relatati
Formatters u parsers tal-lingwi:
Eżempji ta' Rosetta Code:
Eżempji ta' SixArm:
Prinċipji relatati
Faċilment riversibbli. Nistgħu nbiddlu pjuttost faċilment għal format differenti, bħal Unix epoch.
Iddefferixxi l-ottimizzazzjoni prematura. Għall-użu tipiku ma jimpurtax ħafna minn ftit karattri żejda bħal format li juża trattini u żewġ punti.
Noti
Żid noti hawn.