任何人都知道C#是否有关于DST的错误,如果是的话,MS是否提供了关于它的修复,以及如何?非常感谢。
我将笔记本电脑的时区设置为UTC +02:00耶路撒冷并检查选项 - “自动调整夏令时的时钟”。
从http://www.timeanddate.com/worldclock/timezone.html?n=110&syear=2010,我们可以看到,在2010-03-26 02:00,耶路撒冷开始使用DST并将时区从UTC + 2更改为UTC + 3。 我写了一个程序来验证我的猜测:C#在04/01之前仍然使用UTC + 2到耶路撒冷,并从04/02开始使用DST用于耶路撒冷(UTC + 3)。
System.DateTime givenDate = Convert.ToDateTime("03/24/2010 08:00");
givenDate = DateTime.SpecifyKind(givenDate, DateTimeKind.Local);
Console.WriteLine(givenDate.ToUniversalTime());
givenDate = Convert.ToDateTime("03/26/2010 08:00");
givenDate = DateTime.SpecifyKind(givenDate, DateTimeKind.Local);
Console.WriteLine(givenDate.ToUniversalTime());
givenDate = Convert.ToDateTime("04/01/2010 08:00");
givenDate = DateTime.SpecifyKind(givenDate, DateTimeKind.Local);
Console.WriteLine(givenDate.ToUniversalTime());
givenDate = Convert.ToDateTime("04/02/2010 08:00");
givenDate = DateTime.SpecifyKind(givenDate, DateTimeKind.Local);
Console.WriteLine(givenDate.ToUniversalTime());
3/24/2010 6:00:00 AM 3/26/2010 6:00:00 AM 4/1/2010 6:00:00 AM ===> C#仍然使用UTC + 2代表耶路撒冷 4/2/2010 5:00:00 AM ===>从4/2开始,C#开始使用DST用于耶路撒冷,改为UTC + 3
任何人都知道这是否是C#错误,如果是,如何解决?