Fix date conversion on the server-side (#16841)
This commit is contained in:
@@ -219,6 +219,24 @@ public static class ObjectExtensions
|
||||
}
|
||||
}
|
||||
|
||||
if (target == typeof(DateTime) && input is DateTimeOffset dateTimeOffset)
|
||||
{
|
||||
// IMPORTANT: for compatability with various editors, we must discard any Offset information and assume UTC time here
|
||||
return Attempt.Succeed((object?)new DateTime(
|
||||
new DateOnly(dateTimeOffset.Year, dateTimeOffset.Month, dateTimeOffset.Day),
|
||||
new TimeOnly(dateTimeOffset.Hour, dateTimeOffset.Minute, dateTimeOffset.Second, dateTimeOffset.Millisecond, dateTimeOffset.Microsecond),
|
||||
DateTimeKind.Utc));
|
||||
}
|
||||
|
||||
if (target == typeof(DateTimeOffset) && input is DateTime dateTime)
|
||||
{
|
||||
// IMPORTANT: for compatability with various editors, we must discard any DateTimeKind information and assume UTC time here
|
||||
return Attempt.Succeed((object?)new DateTimeOffset(
|
||||
new DateOnly(dateTime.Year, dateTime.Month, dateTime.Day),
|
||||
new TimeOnly(dateTime.Hour, dateTime.Minute, dateTime.Second, dateTime.Millisecond, dateTime.Microsecond),
|
||||
TimeSpan.Zero));
|
||||
}
|
||||
|
||||
TypeConverter? inputConverter = GetCachedSourceTypeConverter(inputType, target);
|
||||
if (inputConverter != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user