Я знаю, что даты должны храниться в UT C Время, а затем отображаться на основе конфигурации клиента с использованием таких библиотек, как «момент-час». Тем не менее, я пишу программное обеспечение для огромной организации с множеством устаревших систем. Это не их культура хранения даты как UT C. У них десятки баз данных и тысячи таблиц, ни одна из них не использует приложение UT C.
My Angular, которое отправляет данные в мой API в формате ISO. Мои контроллеры получают дату со свойством Kind
равно DateTimeKind.Utc
.
Я могу преобразовать дату в местное время следующим образом:
public static class DateTimeExtension
{
public static DateTime ToBrasiliaTime(this DateTime date)
{
if (date.Kind != DateTimeKind.Utc)
return date;
return TimeZoneInfo.ConvertTimeFromUtc(date, TimeZoneInfo.FindSystemTimeZoneById("E. South America Standard Time"));
}
}
Затем я могу использовать
customer.bithrDate = customer.bithrDate.ToBrasiliaTime();....
product.assemblyDate = product.assemblyDate .ToBrasiliaTime();....
order.shippingDate = order.shippingDate .ToBrasiliaTime();....
Но я не хочу называть это расширение снова и снова ... Можно ли реализовать Model Binder для работы с данными тела и применить мои расширения logi c?
Опять же, я знаю, что даты должны храниться в UT C Время , но дело не в этом.