Fix date conversion on the server-side (#16841)

This commit is contained in:
Kenn Jacobsen
2024-08-12 12:41:37 +02:00
committed by GitHub
parent b30a45a248
commit ceddf8681b
3 changed files with 87 additions and 11 deletions

View File

@@ -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)
{