p/invoke GetSystemTime()方法输出错误

Sun*_*dar -2 pinvoke compact-framework windows-ce

我在我的应用程序中使用了p/invoke GetSystemTime()方法来获取当前的系统日期时间,但它为此提供了错误的值.

cta*_*cke 6

啊,时间和CF和WinCE.真有趣!除了您收到的所有其他精美答案外,还有其他事项需要了解:

  1. 操作系统存储LocalTime,而不是UTC,因此GetSystemTime最终获得LocalTime,并根据您的时区和DST向后调整,因此如果本地时间正确但SystemTime不是,那么您的TZ或DST设置错误.
  2. 由于国会改变它,DST可能是也可能不对,因此OEM可能要求QFE
  3. DST可能在注册表中打开或关闭
  4. CF将时区偏差缓存为启动,因此在重新启动应用程序之前,任何时区调整都会导致DateTime.Now不正确
  5. 并非所有设备都可以在断电(甚至复位)时保持时间
  6. 时间将全天"浮动".多么糟糕(毫秒到秒)取决于实际的硬件实现