При использовании ToLocalTime(), как определяется местное время? Является ли местное время с сервера или клиента? Мое предположение было бы сервером, на котором запущено приложение.
Как локально определяется в ToLocalTime()
Ответ 1
Это локальный часовой пояс компьютера, на котором работает код. В приложении ASP.Net код запускается на сервере - так, чтобы часовой пояс был возвращен.
Поведение этой функции фактически зависит от свойства .Kind
исходного значения. Из ссылка MSDN, которую вы указали:
- Utc. Этот экземпляр
DateTime
преобразуется в локальное время. - Локальный. Преобразование не выполняется.
- Unspecified. Этот экземпляр
DateTime
считается временем UTC, а преобразование выполняется так, как будто Kind были Utc.
Это неочевидное поведение. Вы можете прочитать другие связанные проблемы с классом .net DateTime
здесь и .
Несколько других точек:
- Если вы следуете лучшим практикам, вы установите часовой пояс сервера в формате UTC.
- Если вы пытаетесь отобразить время в пользовательском часовом поясе, вам нужно будет использовать одну из этих стратегий.
Ответ 2
ToLocalTime()
, в этом случае выполняется на сервере. Поэтому время оценивается на сервере, и оно возвращает серверное время клиенту.
Ответ 3
Это локальное время на сервере.
Ответ 4
Локальный - это часовой пояс машины, на который функция выполняет.