C#中的时区转换

我有一个日期格式,类似于:

星期一,2009年8月11日13:15:10 GMT

如何将其转换为EST格式?

这或类似应该做的伎俩:

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")); 

值得一提的是,您最初指定的Mon,2009年8月11日 ,实际上是不正确的,因此我已将其更改为2009年8月11日星期二,因此代码将运行,因为如果日期不匹配, Convert.ToDateTime会抛出exception日期。

我还假设您的意思是Eastern Standard Time ,这是与“东部时间(美国和加拿大)”相关联的ID,但您可以通过运行以下代码获得可用时区的完整列表:

 foreach(TimeZoneInfo info in TimeZoneInfo.GetSystemTimeZones()) { Console.WriteLine("Id: {0}", info.Id); Console.WriteLine(" DisplayName: {0}", info.DisplayName); } 
 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