我正在尝试在我的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。