.net – Windows XP上的DateTime.ToLocalTime
.NET
DateTime.ToLocalTime方法的文档说明:
我正在开发Windows 7,但部署到混合环境.如何提供与ToLocalTime的Windows 7行为相匹配的一致,正确的实现? 编辑 我跑了一个测试: static void Main() { // 8 AM in July,UTC. That would have been DST,so 3 AM CDT. var dstDate = new DateTime(2010,7,1,8,DateTimeKind.Utc); // 8 AM in December,UTC. Not DST,so 2 AM CST. var nonDstDate = new DateTime(2010,12,DateTimeKind.Utc); Log("DST Date ToLocalTime: " + dstDate.ToLocalTime()); Log("DST Date ConvertTimeFromUtc: " + ConvertTimeFromUtc(dstDate)); Log("Expected: 3 AM July 1 2010"); Log(string.Empty); Log("Non-DST Date ToLocalTime: " + nonDstDate.ToLocalTime()); Log("Non-DST Date ConvertTimeFromUtc: " + ConvertTimeFromUtc(nonDstDate)); Log("Expected: 2 AM December 1 2010"); Log(string.Empty); Log("Date ToLocalTime Kind: " + dstDate.ToLocalTime().Kind); Log("Date ConvertTimeFromUtc Kind: " + ConvertTimeFromUtc(dstDate).Kind); } private static void Log(string message) { Console.WriteLine(message); } private static DateTime ConvertTimeFromUtc(DateTime utcDateTime) { return DateTime.SpecifyKind( TimeZoneInfo.ConvertTimeFromUtc( utcDateTime,TimeZoneInfo.FindSystemTimeZoneById(TimeZoneInfo.Local.Id)),DateTimeKind.Local); } XP Pro 32位,SP3(作为VM)和Windows 7 Enterprise 64位的结果相同: DST Date ToLocalTime: 7/1/2010 3:00:00 AM DST Date ConvertTimeFromUtc: 7/1/2010 3:00:00 AM Expected: 3 AM July 1 2010 Non-DST Date ToLocalTime: 12/1/2010 2:00:00 AM Non-DST Date ConvertTimeFromUtc: 12/1/2010 2:00:00 AM Expected: 2 AM December 1 2010 Date ToLocalTime Kind: Local Date ConvertTimeFromUtc Kind: Local 文档错了吗?我可以简单地拨打ToLocalTime吗? 编辑2 我们在一个真正的XP系统(不是VM)上运行它,并在那里得到相同的结果.我的测试用例是否正确?任何人都可以提供结果会有所不同的情况吗? 解决方法
美国在2007年改变了夏令时的调整规则. > 2006年:4月的第一个星期日,10月的最后一个星期日结束. 问题在于他们遵循2007年所有日期的规则,而不仅仅是2007年之后的日期.DST规则在20年内没有改变,Windows XP在不同年份没有不同规则的概念.它将考虑2006年10月31日的夏令时,但实际上并非如此. 如果你只处理2007年之后的日期,那么你很好,不需要做任何特别的事情.如果您正在处理2006年或之前的日期,那么您需要检查年份,并手动应用DST偏移. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ms-access – 如何使用Microsoft Access创建自动管理的“上
- windows – 如何在msys2中使用gitk?
- 窗口 – 当开始与Qt框架,什么选择 – 小部件或QT快?
- windows – 处理Git拒绝重置的文件?
- windows-7 – 如何在Windows 7中的单个界面上禁用防火墙?
- windows – 可以从独立服务器运行远程桌面网关吗?
- 权限 – 邮箱用户是否知道他们的邮箱有诉讼保留?
- windows-installer – Visual Studio MSI安装程序
- Windows Server 2016-Windows Server Backup功能
- windows-7 – 如何使用IE10获取HTML5视频