当我尝试从json反序列化DateTimeOffset时遇到问题。我在这里看到了很多问题,但似乎没人能解决。我在这个日期从杰森那里得到时间:格林尼治标准时间05/04/2019 02:39:33 PM我想将偏移量保持为零。反序列化之后,顺便说一句,我得到的对象具有相同的准确时间(在这种情况下为02:39:33 PM),但带有我的时区(+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;
}
所以,我期望这个结果: 05/05/2019 02:39:33 PM +00:00 感谢所有能回答我的事情!
答案 0 :(得分:2)
也许将DateParseHandling.DateTimeOffset
更改为DateParseHandling.None
?
答案 1 :(得分:0)
我通过更改DateParseHandling = DateParseHandling设法获得了预期的结果。在序列化程序的设置中没有。