Преобразование часового пояса в C # - PullRequest
2 голосов
/ 21 августа 2010

У меня есть формат даты, похожий на:

Пн, 11 августа 2009 13:15:10 GMT

Как мне преобразовать это в формат EST?

Ответы [ 2 ]

4 голосов
/ 21 августа 2010

Это, или подобное, должно сработать:

var dateString = "Tue, 11 Aug 2009 13:15:10 GMT";
var date = Convert.ToDateTime(dateString);
var result = TimeZoneInfo.ConvertTime(date, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"));

Стоит отметить, что изначально указанное вами Пн, 11 августа 2009 , действительно неверно, поэтому я изменилсядо вт, 11 августа 2009 , поэтому код будет работать, так как Convert.ToDateTime выдает исключение, если день не совпадает с датой.

Я также предположил, что вы имеете в виду Eastern Standard Time, то есть идентификатор, связанный с "Eastern Time (US & Canada)", но вы можете получить полный список доступных часовых поясов, выполнив следующую командукод:

foreach(TimeZoneInfo info in TimeZoneInfo.GetSystemTimeZones())
{
    Console.WriteLine("Id: {0}", info.Id);
    Console.WriteLine("   DisplayName: {0}", info.DisplayName);
}
1 голос
/ 21 августа 2010
var datetime = DateTime.Parse("Sat, 21 Aug 2010 13:15:10 GMT");
TimeZoneInfo estZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
DateTime estTime = TimeZoneInfo.ConvertTime(datetime, estZone);

EST может означать разные времена, которые вы хотите: http://en.wikipedia.org/wiki/EST

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