Я сохраняю все поля DateTime как время UTC. Когда пользователь запрашивает веб-страницу, я хотел бы воспользоваться предпочтительным местным часовым поясом (а не местным часовым поясом серверной машины) и автоматически отображать все поля DateTime во всех веб-формах в качестве локальных дат.
Конечно, я могу применить преобразование для каждого вызова DateTime.ToString() в каждой форме или реализовать некоторую вспомогательную утилиту, но это трудоемкая задача, а также некоторые сторонние компоненты, которые сложны для настройки с помощью пользовательских Шаблоны отображения DateTime.
По существу, я хотел бы заставить класс DateTime вести себя следующим образом:
from this moment on for this web request,
whenever some code calls DateTime.ToString(), convert it to the local time
using the timezone offset given at the very beginning of the web request,
but if possible, please keep .NET core library DateTime.ToString() calls intact
(I don't want to mess up event logging timestamps etc.)
Есть ли способ сделать это?
Кстати, я использую ASP.NET MVC 4, если это имеет значение.