.NET webservice datetime.now - часовой пояс - PullRequest
0 голосов
/ 10 марта 2010

Мне нужно вернуть серверное время из веб-сервиса. У меня есть следующий код:

<WebMethod()> _
Public Function GetDate() As DateTime
        Return DateTime.Now

End Function

Код всегда возвращает время в зависимости от часового пояса подключенного клиента (если я изменю часовой пояс, веб-служба вернет обновленное время вместо времени локального сервера). Как я могу решить проблему?

Ответы [ 4 ]

0 голосов
/ 10 марта 2010

вам нужно всегда возвращать время utc. Таким образом, вы всегда будете знать, что он не является часовым поясом.

<WebMethod()> _
Public Function GetDate() As DateTime
        Return DateTime.Now.ToUniversalTime()
End Function
0 голосов
/ 10 марта 2010

Сервер фактически отправляет дату и время в часовом поясе своих локальных настроек. Клиент, вероятно, интерпретирует его по-разному (в зависимости от его локальных настроек). Безопаснее использовать время UTC на сервере или использовать DateTimeOffset для предоставления информации о часовом поясе.

0 голосов
/ 10 марта 2010

Попробуйте это:

DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);
0 голосов
/ 10 марта 2010

Это не срочно для людей здесь, поэтому бесполезно помечать вопрос таким образом.

Взгляните на Создание DateTime в определенном часовом поясе в c # fx 3.5 , который был первым результатом Google ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...