Przechowuję wszystkie pola DateTime jako czas UTC. Kiedy użytkownik żąda strony internetowej, chciałbym wybrać jego lokalną strefę czasową (a nie lokalną strefę czasową serwera) i automatycznie wyświetlać wszystkie pola DateTime we wszystkich formularzach internetowych jako daty lokalne.Globalnie konwertuj UTC DateTimes na określoną przez użytkownika lokalną datę DateTimes
Oczywiście mogłem zastosować konwersję w każdym wywołaniu funkcji DateTime.ToString() w każdym formularzu lub zaimplementować narzędzie pomocnicze, ale jest to zadanie czasochłonne, a także istnieją składniki innych firm, które są trudne do skonfigurowania z niestandardowe szablony wyświetlania DateTime.
Zasadniczo chciałbym, aby klasa DateTime zachowywać się w sposób następujący:
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.)
Czy istnieje jakiś sposób, aby to zrobić?
BTW, używam ASP.NET MVC 4, jeśli to ma znaczenie.
Świetna odpowiedź! Powiedziałeś, że można to zrobić za pomocą wbudowanego obiektu 'Date' w JavaScript. Czy mógłbyś zaktualizować swoją odpowiedź, aby pokazać, jak można to zrobić? – Scott
@Scott - Zaktualizowano. Dzięki. –