Неправильный часовой пояс в DataTable - PullRequest
1 голос
/ 24 марта 2011

У меня есть веб-сайт, который находится на сервере1. Он использует веб-сервис, который находится на сервере2. Веб-сервис использует базу данных, которая находится на сервере 3.

Сервер1, сервер2 и сервер3, имеют разные часовые пояса, поэтому, когда я получаю данные через веб-сервис, столбец типа Datetime имеет другое значение времени.

Например,

если в базе данных у меня есть запись (тип даты) '2010-03-24-12: 00: 00', на веб-сайте я получаю '2010-03-24-13: 00: 00'

Я пытался изменить "DateTimeMode" столбца, но проблема не была решена.

Ответы [ 3 ]

3 голосов
/ 24 марта 2011

Как правило, я всегда сохранял значения даты и времени в своих базах данных в формате UTC и оставлял это на усмотрение клиента для настройки в соответствии с соответствующим часовым поясом. .NET 3.5 делает эту настройку часового пояса очень простой.

2 голосов
/ 24 марта 2011

Существует проблема с сериализацией DateTime и WCF.

Лучшее решение - всегда хранить DateTime как UTC в базе данных. Затем при чтении DateTime из SQL всегда используйте DateTime.Specify, чтобы указать DateTimeKind.Utc.

1 голос
/ 24 марта 2011

Использование универсального времени или GMT должно решить эту проблему.

...