【问题标题】:DateTime.Now - Metro App - Windows 8DateTime.Now - Metro 应用程序 - Windows 8
【发布时间】:2014-01-23 18:17:58
【问题描述】:

我正在使用 DateTime.Now 在我的 metro (windows 8) 应用程序 (c# + winjs) 中显示当前时间和日期。

当用户更改 TimeZone 时,无需关闭并重新打开应用程序,DateTime.Now 会显示旧时间。

(当用户关闭并重新打开应用时工作正常)

如何获得正确的时间?

谢谢

【问题讨论】:

  • 对不起,我不明白 - 您使用的是 C# 和 JavaScript (WinJS)?你的意思是你正在创建一个调用 C# 运行时组件的 WinJS 应用程序?
  • 我有一个用 WinJS 编写的 Metro 应用程序和一个 C# WinRT 组件 (DLL)

标签: datetime timezone winjs


【解决方案1】:

在标准应用程序中,您可以使用 TimeZoneInfo.ClearCachedData,但这在 Windows 应用商店应用程序中不可用。

您可以考虑使用the WinRTTimeZones library,它提供不同的API,并使用fetches the time zone from windows 使用GetDynamicTimeZoneInformation 本机Win32 调用来获取时区。

免责声明:我没有使用此库的经验。似乎有正确的想法,但如果遇到问题,请直接向库的作者提出问题。谢谢。

【讨论】:

  • 我们使用这个库来获取正确的夏令时。我们需要使用 DateTime.Now 或 DateTime.UtcNow 来更新时间,但是当用户更改 TimeZone 时,这些值都不会更新:(
【解决方案2】:

【讨论】:

  • 澄清:然后检查他们所在的时区,并处理与那里的差异。
  • 不,问题与 Metro 应用程序中的缓存时区有关
猜你喜欢
  • 2013-04-03
  • 1970-01-01
  • 2012-06-29
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-05
相关资源
最近更新 更多