adobe / adobe/aio-lib-java

`aem` Date format not compatible with ECMA Script

Offen
#103 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
7
Forks
22
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Events produced by `aem` have the form:

```
{
"event_id": "2e38cbbe-4426-468c-b5ff-a8940e3210a6",
"event": {
"@id": "urn:oeid:aem:779885b1-f2fa-480d-b0c0-5a93619c5d29",
"@type": "xdmCreated",
"activitystreams:published": "2021-03-16T10:54:47.037+01",
"activitystreams:to": {
"@type": "xdmImsOrg",
"xdmImsOrg:id": "B28447B65D88A19F0A495C33@AdobeOrg"
},

```
...


Unfortunately, the JavaScript methods Date.parse() or new Date() cannot parse Date-Strings like that one:

`2021-03-16T10:54:47.037+01 //ERROR!!`

(even though it's proper ISO-8601) The correct format is

`2021-03-16T10:54:47.037+01:00`

With the additional minute-denominator in the timezone (yes - there are half-hour time zones on the globe ..)

What also is allowed is `2021-03-16T10:54:47.037Z`
for "Zulu-time" which is equivalent to "+00:00"

Now we should assume that 90% of the receivers are implemented in I/O runtime and thus implemented in JS. So I think it's worth the effort fixing it.

You can argue, that this can easily be done with a regex in the client code...
BUT: Most of the time I received valid events with "Z" timezone.. and my code worked perfectly well.
Until now, when I saw these "incomplete" "+01" showing up in the queue..
and my perfectly working code stopped working

BTW: "+01:00" also is perfectly ISO-8601 compatible... so it should be safe to use that format instead.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die Ereignisserialisierung zu lokalisieren, die den Wert `activitystreams:published` für aem erzeugt; die Issue enthält Beispiele für die aktuellen und gewünschten Formate. Überprüfe den ausgegebenen Zeitstempel mit JavaScript `Date.parse()` oder `new Date()` und betrachte die Issue als abgeschlossen, wenn die Zeitzone ihre Minutenkomponente enthält oder `Z` verwendet und das resultierende Ereignis gültiges ISO-8601 bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, javascript
Bereich
api, backend
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.