如何正确反序列化Json DateTimeOffset?

3
我在尝试从json反序列化DateTimeOffset时遇到了问题。我看到这里有很多相关的问题,但似乎都没能解决我的问题。我从json中得到的dateTime是:05/04/2019 02:39:33 PM GMT,并且我想将偏移量保留为零。但在反序列化后,我得到的对象拥有相同的时间(在这种情况下是下午02:39:33),但是却带有我的时区(+02:00)。我尝试了以下两个解决方法,但是都没有成功:
首先,我尝试对反序列化器进行配置:
JsonSerializerSettings serializerSettings = new JsonSerializerSettings
    {
        DateFormatHandling = DateFormatHandling.IsoDateFormat,
        DateTimeZoneHandling = DateTimeZoneHandling.Utc,
        DateParseHandling = DateParseHandling.DateTimeOffset,
        DateFormatString = "dd/MM/yyyy hh:mm:ss tt 'GMT'"
    };

我也尝试了这个转换器:

最初的回答

class DateFormatConverter : IsoDateTimeConverter
{
    public DateFormatConverter(string format)
    {
        DateTimeFormat = format;
        DateTimeStyles = System.Globalization.DateTimeStyles.AssumeUniversal;
    }

因此,我期望的结果是: 2019年5月4日下午2:39:33 +00:00 感谢所有回答我的人! 最初的回答

1
看起来你自己找到了答案。在这种情况下,不要编辑问题并将答案添加到问题中,而是发布一个答案并将其标记为答案。 - Shahryar Saljoughi
2个回答

3
也许将DateParseHandling.DateTimeOffset更改为DateParseHandling.None

0

我通过在序列化器的设置中将DateParseHandling属性更改为DateParseHandling.None,成功得到了预期的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接