`aem` Date format not compatible with ECMA Script
- 主要语言
- Java
- 星标
- 7
- 派生
- 22
- PR 合并指标
- 30 天内没有已合并 PR
描述
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.
贡献指南
调研方向
首先定位生成 aem 的 `activitystreams:published` 值的事件序列化代码;issue 提供了当前格式和期望格式的示例。使用 JavaScript `Date.parse()` 或 `new Date()` 检查输出的时间戳;当时区包含分钟部分或使用 `Z`,且生成的事件仍然是有效的 ISO-8601 时,即可认为 issue 已完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java, javascript
- 领域
- api, backend
- Issue 类型
- 缺陷
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100