更改TimeZone不反映.NET Compact Framework中的时间更改

Omk*_*kar 1 .net c# compact-framework windows-ce

我正在研究.Net Compact Frmework(CF)应用程序.我这个应用程序的要求是我应该能够更改TimeZone.但是,当我更改TimeZone时,当前时间不会更改为特定的TimeZone.从,我开始知道DateTime.Now在这种情况下无法工作.

我正在使用以下Win API:

  1. SetTimeZoneInformation(...) - 在运行时设置时区.
  2. GetLocalTime(...) - 获取当地时间和当前时区.

任何人都可以告诉我可能有什么问题吗?

AAT*_*AAT 5

以这种方式从应用程序更改时区不会更改本地时间:而是更改系统时间以保持本地时间相同.这不是控制面板的功能,但如果要模拟控制面板功能,则需要执行以下操作:

  • 保存系统时间
  • 改变时区
  • 恢复已保存的系统时间

这样,系统时间保持不变,本地时间根据所选时区而变化.

顺便说一句,我们使用OpenNETCF库(http://www.opennetcf.com)在我们的产品中执行此操作,该库包括一个DateTimeHelper类(在许多其他有用的东西中 - 并且社区版是免费的).(这比编写自己的pinvoke访问要简单一点SetTimeZoneInformation(),功能也一样.)