当使用c#进行时区转换时,无法获得准确的印度时间



我正在尝试在我的c#代码中将英国时间转换为印度标准时间(我的系统时区在IST):

DateTime ukTime = 2015-09-02 05:03 PM; 
TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
DateTime indianTime =  TimeZoneInfo.ConvertTimeFromUtc(ukTime , INDIAN_ZONE);

对应的印度日期时间为2015-09-02 09:33 PM

但是我得到的输出是2015-09-02 10:36 PM(比预期的结果多一个小时)。我怎样才能得到正确的输出?

Thanks in advance

我想你是故意的:

DateTime ukTime = new DateTime(2015, 9, 2, 17, 3, 0); // 2015-09-02 05:03 PM
TimeZoneInfo UK_ZONE = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
DateTime indianTime = TimeZoneInfo.ConvertTime(ukTime, UK_ZONE, INDIAN_ZONE);
// 2015-09-02 09:33 PM

"UK time"与UTC或GMT不一样。英国一年中只有部分时间遵循格林尼治标准时间。一年中的其他时间使用英国夏令时(BST),即UTC+1。

相关内容

  • 没有找到相关文章