Nodatime 如何使用 System.Text.Json 将 ZonedDateTime 序列化为 ISO-8601 格式

Nodatime How do I serialize ZonedDateTime to ISO-8601 format using System.Text.Json

有没有办法使用 System.Text.Json 将 ZonedDateTime 序列化为 ISO 8601 字符串?

我目前得到的输出格式为 2020-03-15T15:14:53Z UTC,不符合 ISO 8061 标准。

最终目标是将其输入 Moment.js 以进一步格式化

编辑:添加代码片段,注意复杂,只是从 DateTimeOffset 创建 ZonedDateTime

//Incoming Date format "Mon Feb 10 16:46:03 +0000 2020"
var dto = DateTimeOffset.ParseExact(date, "ddd MMM dd HH:mm:ss K yyyy", CultureInfo.InvariantCulture.DateTimeFormat);
var zdt = dto.ToZonedDateTime();

ISO-8601 没有任何时区表示 - 只有 UTC 时差。 (不幸的是,它将那些称为时区,但它们不是。)

如果您从 DateTimeOffset 构建 ZonedDateTime,我建议您不要这样做,而是使用 OffsetDateTime,它实际上代表了您拥有的信息。 (您也可以直接从初始值解析它,而不是通过 DateTimeOffset。)

虽然我没有检查,但我希望 OffsetDateTime JSON 表示是 ISO-8601 格式。