Один из вопросов, который мы постоянно получаем, заключается в том, как изменить время сервера, чтобы оно соответствовало часовому поясу клиента или пользователей.К сожалению, ответ - вы не можете.Веб-сервер может работать только в одном часовом поясе, поэтому время будет «выключено» в остальных 39 часовых поясах.
Чтобы обойти это, вы можете преобразовать время сервера в местное.время..NET упрощает эту задачу с помощью встроенного класса TimeZoneInfo, который можно использовать для преобразования одного часового пояса в другой.
Тогда мое серверное время будет отличаться от моего местного времени на 12,30 часа, т.е. вычитать 12 часов и 30минут от моего местного времени, чтобы получить мое время сервера.Мне нужно получить местное время от сервера времени.Как это может быть достигнуто?
Я пытаюсь создать класс:
protected DateTime GetCurrentTime()
{
DateTime serverTime = DateTime.Now;
DateTime _localTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(serverTime, TimeZoneInfo.Local.Id, "Arab Standard Time");
return _localTime;
}
И вот как получить TimeZoneId на сервере:
protected void Page_Load(object sender, EventArgs e)
{
foreach (TimeZoneInfo zoneID in TimeZoneInfo.GetSystemTimeZones())
{
Response.Write(zoneID.Id + "<br/>");
}
}
НоЯ не знаю, что я делаю не так или что хорошего в этом.Все, что у меня есть, - это база данных на сервере, подключенная к приложению c # windows, и я пытаюсь использовать этот код для получения моего сегодняшнего отчета > DATEADD(d, - 1, GETDATE())
, но он работает после 11:30