Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的时区转换#_C#_Datetime_Timezone - Fatal编程技术网

C# C语言中的时区转换#

C# C语言中的时区转换#,c#,datetime,timezone,C#,Datetime,Timezone,我有一个日期格式,类似于: 2009年8月11日星期一13:15:10 GMT 如何将其转换为EST格式 var datetime = DateTime.Parse("Sat, 21 Aug 2010 13:15:10 GMT"); TimeZoneInfo estZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); DateTime estTime = TimeZoneInfo.ConvertTime(date

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

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

如何将其转换为EST格式

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
可以表示不同的时间,您想要哪个时间:

这个或类似的时间应该可以:

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"));
值得一提的是,您最初指定的2009年8月11日星期一实际上是不正确的,因此我将其更改为2009年8月11日星期二,这样代码将在转换时运行。如果日期与日期不匹配,ToDateTime将引发异常

我还假设您指的是
东部标准时间
,它是与“东部时间(美国和加拿大)”关联的id,但您可以通过运行以下代码获得可用时区的完整列表:

foreach(TimeZoneInfo info in TimeZoneInfo.GetSystemTimeZones())
{
    Console.WriteLine("Id: {0}", info.Id);
    Console.WriteLine("   DisplayName: {0}", info.DisplayName);
}