Fix JTokenReader not using DateTimeZoneHandling
This commit is contained in:
@@ -109,7 +109,5 @@ namespace Newtonsoft.Json.Tests.Serialization
|
||||
Assert.AreEqual(DateTimeKind.Unspecified, c3.Value.Kind);
|
||||
Assert.AreEqual(DateTimeKind.Unspecified, c4.Value.Kind);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -210,8 +210,16 @@ namespace Newtonsoft.Json.Linq
|
||||
SetToken(JsonToken.Undefined, ((JValue)token).Value);
|
||||
break;
|
||||
case JTokenType.Date:
|
||||
SetToken(JsonToken.Date, ((JValue)token).Value);
|
||||
break;
|
||||
{
|
||||
object v = ((JValue)token).Value;
|
||||
if (v is DateTime dt)
|
||||
{
|
||||
v = DateTimeUtils.EnsureDateTime(dt, DateTimeZoneHandling);
|
||||
}
|
||||
|
||||
SetToken(JsonToken.Date, v);
|
||||
break;
|
||||
}
|
||||
case JTokenType.Raw:
|
||||
SetToken(JsonToken.Raw, ((JValue)token).Value);
|
||||
break;
|
||||
@@ -222,10 +230,12 @@ namespace Newtonsoft.Json.Linq
|
||||
SetToken(JsonToken.String, SafeToString(((JValue)token).Value));
|
||||
break;
|
||||
case JTokenType.Uri:
|
||||
object v = ((JValue)token).Value;
|
||||
Uri uri = v as Uri;
|
||||
SetToken(JsonToken.String, uri != null ? uri.OriginalString : SafeToString(v));
|
||||
break;
|
||||
{
|
||||
object v = ((JValue)token).Value;
|
||||
Uri uri = v as Uri;
|
||||
SetToken(JsonToken.String, uri != null ? uri.OriginalString : SafeToString(v));
|
||||
break;
|
||||
}
|
||||
case JTokenType.TimeSpan:
|
||||
SetToken(JsonToken.String, SafeToString(((JValue)token).Value));
|
||||
break;
|
||||
|
||||
@@ -990,11 +990,6 @@ namespace Newtonsoft.Json.Serialization
|
||||
}
|
||||
}
|
||||
|
||||
if (value is DateTime dt)
|
||||
{
|
||||
return DateTimeUtils.EnsureDateTime(dt, reader.DateTimeZoneHandling);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user