时区转换 C# 时没有得到准确的印度时间

Not getting exact Indian Time while Time zone converstion 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(比预期结果多一小时)。我怎样才能得到正确的输出?

提前致谢

我想你是想这样做:

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 不同。英国仅在一年中的部分时间遵循 GMT。一年中的其他时间是英国夏令时 (BST),即 UTC+1。