datetime.now опаздывает только на сервер на 10 часов, на локальной машине настраивает - PullRequest
2 голосов
/ 11 января 2012

У меня есть веб-приложение, в котором очень важен datetime.now.на моей локальной машине он устанавливает datetime.now в нужное время.только когда я использую его на сервере (мой сервер находится в Европе, я в Израиле), разница между реальным временем и датой составляет 10 часов. Теперь я уже пробовал:

<globalization culture="he-IL" uiCulture="he-IL" />

также я пытался установить каждую страницу / установить переменные даты и времени по местному времени:

DateTime example = DateTime.Now.ToLocal();

и все же, похоже, ничего не работает.какие-либо предложения?заранее спасибо.

Ответы [ 3 ]

7 голосов
/ 11 января 2012

DateTime.Now является локальным, поэтому преобразование в локальное не допускается; если это не так, попробуйте DateTime.UtcNow или комбинации, включающие начало с UtcNow и применение ToLocal оттуда.

Также убедитесь, что часы сервера и часовой пояс правильные.

Если честно, использовать UtcNow везде проще.

3 голосов
/ 11 января 2012

Настройка приложения. Культура меняет способ отображения числа, даты, времени и т. Д.

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

Вы должны обращаться с датой как utc

http://msdn.microsoft.com/en-us/library/system.timezone.aspx

var timeZone = TimeZoneInfo.FindSystemTimeZoneById("YOUR TIME ZONE ID");
var dateTime = TimeZoneInfo.ConvertTime(DateTime.UtcNow, timezone)
2 голосов
/ 11 января 2012

Если сервер отстает на 10 часов, он вернет вам местное время, а не ваше. Что если вы добавите 10 часов к местному времени сервера, чтобы узнать ваше местное время в Израиле. Возможно, вам придется дать или взять и час, если вы должны соблюдать летнее время.

var dt = DateTime.Now.AddHours(10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...