【发布时间】:2019-12-10 22:18:03
【问题描述】:
使用 .NET Core 和 Json.NET,我如何序列化 DateTimeOffset(不是 DateTime)以使 UTC +00:00 变为 Z,同时保持任何其他时区偏移(例如 -04:00) ?
This SO post 用于DateTime,但有了它,我设法将+00:00 替换为Z,同时将所有 时区转换为UTC
new JsonSerializerSettings {
Converters = new JsonConverter[] {
new IsoDateTimeConverter {
DateTimeStyles = DateTimeStyles.AdjustToUniversal,
DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'",
}
}
};
我想保留时区偏移信息,即
2019-12-10T17:00:00Z 为new DateTimeOffset(2019, 12, 10, 17, 0, 0, TimeSpan.Zero)
和
2019-12-10T13:00:00-04:00 为new DateTimeOffset(2019, 12, 10, 13, 0, 0, TimeSpan.FromHours(-4))
DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ssK" 建议适用于 DateTime,但输出 +00:00,而不是 Z,适用于 DateTimeOffset...
【问题讨论】:
-
我很快就回答了你的问题,但也许我误解了你的问题。您的问题是 1) 仅将您的转换器应用于
DateTimeOffset? 2) 获取DateTimeOffset的正确格式? -
获取
DateTimeOffset的正确格式。即2019-12-10T17:00:00Z但2019-12-10T13:00:00-04:00