Я некоторое время боролся с UTC и местным временем.У меня есть приложение, которое создает события (классы), и когда хост создает событие (класс), они устанавливают дату и время события.Итак, на стороне сервера я сохраняю как локальное время для события, так и время в формате UTC для этого события.
Но сейчас я все время путаю себя.
Пример: Еслипользователь заходит на страницу хостов, чтобы увидеть все события (классы) хостов, как мне искать события хоста, если в запросе используется время даты, а пользователь, посещающий страницу, отличается от часового пояса хоста.
В настоящее время я делаю что-то вроде этого:
var events = host.Events.Where(j => j.EventDateTime >= DateTime.Now
&& j.EventStatus == EventStatus.Active).ToList()
Но теперь я расстроен из-за DateTime.Now
, потому что это дата и время сервера Azure, и этот запрос сравнивает локальныйвремя даты события к времени даты UTC.
Итак, мой вопрос:
Должен ли я попытаться выяснить, что такое время даты UTC, и передать его перед добавлением смещения к DateTime.Now
?
Или я должен выполнить запрос, используя время в формате UTC?Что будет примерно так:
var events = host.Events.Where(j => j.UtcEventDateTime >= DateTime.UtcNow
&& j.EventStatus == EventStatus.Active).ToList()