Конвертируйте дату и время из GMT в другие (восточный, горный, тихоокеанский, индийский, ..) форматы - PullRequest
3 голосов
/ 10 августа 2009

Мне нужно знать, как преобразовать дату и время в формате часового пояса GMT в другие форматы, такие как Восточный, Тихий, Горный и Индия. Форматы часовых поясов в c #, asp.net2.0 и dot net frame frame 2.0.

Заранее спасибо

Руп.

Ответы [ 3 ]

2 голосов
/ 10 августа 2009

К сожалению, в .NET 2.0 вы в основном набиты. Вам понадобится P / Invoke для создания экземпляра класса TimeZone. Начиная с версии .NET 3.5 это стало намного лучше - TimeZoneInfo позволяет выбирать нелокальные зоны. Кажется, я помню, что последний также лучше поддерживает историческую информацию о часовом поясе, а не просто пару правил для изменения летнего времени.

Вы можете получить информацию, используя GetTimeZoneInformation , но это относительно уродливо. Вполне возможно, есть какой-то способ использования P / Invoke просто для того, чтобы сделать преобразование для вас ... хотя это все еще может быть волосатым.

Насколько твердо требование использовать .NET 2.0? Вы бы сэкономили много хлопот, используя .NET 3.5 ...

1 голос
/ 10 августа 2009

Действительно, вы хотите .NET 3.5 для этого ...

(я знаю, что вы спрашивали о .NET 2.0, но этот ответ может оказаться полезным для тех, кто ищет эту тему в будущем)

TimeZoneInfo mountain = TimeZoneInfo.FindSystemTimeZoneById(
    "US Mountain Standard Time");
DateTime utc = DateTime.UtcNow;
DateTime local = TimeZoneInfo.ConvertTimeFromUtc(utc, mountain);

До этого ... боль. Вы можете сохранить свой собственный список смещений, но тогда вам придется беспокоиться о летнем времени.

0 голосов
/ 09 марта 2013

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

public DateTime IndianStandard(DateTime currentDate)
{
    TimeZoneInfo mountain = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
    DateTime utc = currentDate;
    return TimeZoneInfo.ConvertTimeFromUtc(utc, mountain);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...