【问题标题】:Get user specified long date format in UWP在 UWP 中获取用户指定的长日期格式
【发布时间】:2017-05-03 22:24:28
【问题描述】:

我想将日期转换为用户设置的长日期格式。当前文化是 en-US,但用户可以在控制面板 -> 地区 -> 长日期中设置他/她选择的长日期格式。

在这种情况下,我在这里将格式设置为匈牙利语,并选择了 yyyy。 MMMM D.格式(将当前文化保留在 en-US 中)。

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.FullDateTimePattern 返回不正确的模式。

Windows 也是如此。​全球化 API。

在我的 Package.appxmanifest 中:

  <Resources>
    <Resource Language="x-generate" />
  </Resources>

有人知道如何从控制面板 -> 地区 -> 长日期获取日期格式吗?

【问题讨论】:

    标签: c# date uwp date-formatting


    【解决方案1】:

    很遗憾,UWP API 不公开区域设置;话虽如此,我确实找到了working solution,但我还没有使用 Creators Update 对其进行测试,因此无法确认它是否仍然有效!

    更新:我发现 a non-hacky way 使用 GetLocaleInfoEx Win32 API 这样做。

    【讨论】:

    • 感谢您的意见,确实设法获得了“HU”文化。但是,所述文化有两种长日期格式,CultureInfo.DateTimeFormat.LongDatePattern 返回默认值(可能与用户在控制面板中选择的不同)。
    • 实际上,似乎在 new DateTimeFormatter("longdate", new[] { "US" }).Patterns[0] 中,显示了正确的模式,它被选中。再次感谢,读起来很有趣!
    • 我已经更新了更多信息,以及检索“正确”CurrentCulture 的更好方法!
    猜你喜欢
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多