Дата случайно изменена в другом часовом поясе в asp.net - PullRequest
2 голосов
/ 15 апреля 2020

Я сталкиваюсь со странным сценарием, согласно которому дата текстового поля (которое выбирается из базы данных sql) изменяется случайным образом по дате (-1) дня

My WebApp развернут в США на двух серверах * (оба сервера имеют разницу во времени на 1 час из-за UT C -5 , UT C -6 ), и я нахожусь в часовом поясе UTC + 5 .

Внутри SQL В таблице есть дата '05/31/2020', но иногда она показывает '05/30/2020' в начале.

Тип столбца в SQL - Дата. Затем я получаю DataSet, и в коде за этой строкой используется Convert.ToDateTime(DataSet.Tables[0].Rows[0]["Date"])).ToShortDateString()

Когда я отлаживаю этот код локально, дата правильная каждый раз.

1 Ответ

2 голосов
/ 15 апреля 2020

Я подозреваю, что где-то у вас есть проблема с местным и UT C временем.

С вами по UTC + 5 и вашими серверами по UT C -5 и UT C -6. они могут быть на один день позади вас, например, ваше местное время до 10:00 пятницы, они все еще будут в четверг.

Как ваш сервер обрабатывает дату? Оно всегда должно быть в UT C, затем вы загружаете значение SQL DATE в тип DateTime и используете DateTime.ToLocalTime для преобразования в ваш пользовательский интерфейс и DateTime.ToUniversalTime при переходе от пользовательского интерфейса к внутреннему SQL.

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