Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c查找当前莫斯科时间#_C#_.net_Timezone - Fatal编程技术网

C# 使用c查找当前莫斯科时间#

C# 使用c查找当前莫斯科时间#,c#,.net,timezone,C#,.net,Timezone,我正在尝试在.NET应用程序中获取莫斯科当地时间 以下是我走了多远: private static Dictionary timeZoneDict=new Dictionary() { {timezonenenum.russiasiastandardtime,“俄罗斯标准时间”} }; 公共静态日期时间GetDateTimeNowForTimeZone(TimeZoneNeum时区) { DateTime结果=TimeZoneInfo.ConvertTime(DateTime.UtcNow,Ti

我正在尝试在.NET应用程序中获取莫斯科当地时间

以下是我走了多远:

private static Dictionary timeZoneDict=new Dictionary()
{
{timezonenenum.russiasiastandardtime,“俄罗斯标准时间”}
};
公共静态日期时间GetDateTimeNowForTimeZone(TimeZoneNeum时区)
{
DateTime结果=TimeZoneInfo.ConvertTime(DateTime.UtcNow,TimeZoneInfo.FindSystemTimeZoneById(timeZoneDict[timezone]);
返回结果;
}
方法GetDateTimeNowForTimeZone给我GMT+3时间,但现在在俄罗斯有GMT+4时间。
有什么方法可以在.net framework中为这个问题提供健壮的解决方案吗?

我认为这个问题可以通过Microsoft的补丁解决。他们定期更新时区

据我所知,现在你所能做的就是+1时间


当然,您也可以通过某些web时间服务请求时间。

您需要修补您的系统。在我的系统(安装了所有更新的Windows 7)上,它提供了正确的时间:

DateTime.UtcNow.Dump();
TimeZoneInfo.ConvertTime(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time")).Dump();
输出:

17/12/2013 09:11:08
17/12/2013 13:11:08
微软不久前发布了适应俄罗斯DST法律变化的软件,你显然没有


*Dump()是LINQPad提供的扩展方法。等效于Console.WriteLine(.ToString())

根据这条()是正确的,您可能需要检查
是否为DaylightSavingTime
,并相应地增加一个小时,直接转到源代码。我会找到一个更强大的计时系统,它不会在时区之间切换。看一看,似乎俄罗斯最近放弃了DST,这可能就是为什么这是错误的。:d哦,我同意你的观点。不管怎么说,大自然最近变得一团糟,所以我认为这是一个正确的观点。在.net中有一个错误:根据这个:莫斯科时间是GMT+3,但实际上它是+4。这不是一个错误,只是页面没有更新-俄罗斯标准时间现在在.net框架中有GMT+4。然而,有一个bug,在这个更改之后,旧日期被错误地转换了。我不会把它称为bug。索引在框架/操作系统更新之前。实际上,我正在我们的系统上进行一些时区转换,发现在一年的时间里,他们增加了24个时区。现在有.15.30.45和偏移量。我说现在是因为我最近偶然发现了这个提醒你,这种情况可能会持续一段时间:)现在我想,如果应用程序运行在一个过时的操作系统上,这不会有什么帮助。问题是,这个操作系统无论如何都会有时间问题。如果你的程序的时钟显示为14:00,而windows的系统时钟显示为13:00,会有什么帮助?最好只显示系统的本地时间——如果用户习惯了1小时的休息时间,他不会注意到。对于服务器/客户端交互,无论如何都是UTC。