1

我对日期时间转换有疑问,代码如下

DateTime indianStd = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "India Standard Time");
DateTime MyanmarStd = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "Myanmar Standard Time");
DateTime SEAsia = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "SE Asia Standard Time");
DateTime dtConvertedDT = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(MyanmarStd, "India Standard Time");

当我在标签上打印这些时间时

indianStd 显示时间 4:30:45;

ConvertedDt 在哪里显示 5:30:45 为什么这个一小时的差异
可以任何人告诉我原因

4

5 回答 5

0
   DateTime indianStd = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "India Standard Time");

   DateTime MyanmarStd = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "Myanmar Standard Time");

DateTime SEAsia = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow, "SE Asia Standard Time");

 DateTime ConvertedDt = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(MyanmarStd, "Myanmar Standard Time", "India Standard Time");   

这将返回当前的日期时间

于 2012-10-05T04:07:50.670 回答
0

因为他们是不同的时区? http://www.happyzebra.com/timezones-worldclock/India-and-Myanmar.php

于 2012-10-04T11:33:32.530 回答
0

IST与缅甸时差为1小时。

IST 是 UTC + 5.30 小时
缅甸(仰光)是 UTC + 6.30 小时

要确认这一点,只需检查您的计算机日期和时间 -> 时区设置。

在此处输入图像描述

于 2012-10-04T11:33:52.543 回答
0

检查Kind缅甸对象的属性。将其设置为本地。

于 2012-10-04T11:34:11.430 回答
0

尝试这个:

public DateTime ConvertToIndianDateTime()
{

var myanMarDateTime = your myanmar date time
myanMarDateTime.Kind = DateTimeKind.Local; 
var indianTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");

return TimeZoneInfo.ConvertTime(myanMarDateTime, indianTimeZoneInfo, TimeZoneInfo.Local);
}
于 2012-10-04T13:31:18.000 回答