iOS上的日期和时间格式显示不正确

时间:2018-04-04 08:13:38

标签: c# xamarin xamarin.forms xamarin.ios

iOS上的日期格式有些问题。在Android上它可以正确显示。

var d = local.ToLongDateString();
var t = local.ToShortTimeString();
return string.Format("{0} kl. {1}", d, t);

这将显示英文日期和12小时格式的时间。电话区域设置为挪威,电话语言为挪威语,而英语为第二语言。

iOS上的结果:

  

2018年4月8日星期日kl。下午6点

Android上的结果:

  

søndag8。8月,2018 kl。 18:00

2 个答案:

答案 0 :(得分:2)

我在Xamarin Docs - iOS Localization中找到了答案:

  

如果未在Info.plist文件中指定CFBundleDevelopmentRegion,则Xamarin.iOS构建工具当前使用默认值en_US.

解决方案是使用文本编辑器编辑Info.plist并添加以下密钥:

<key>CFBundleDevelopmentRegion</key>
<string>no</string>

答案 1 :(得分:0)

您可以自己提供格式:

local.ToString("dddd, MMMM d, yyyy kl. hh:mm tt", CultureInfo.InvariantCulture)

上述代码应在所有定位平台上返回一致的结果:
Wednesday, April 4, 2018 kl. 10:24 AM

您可以在此处轻松使用解决方案:http://rextester.com/PPP50237

有关自定义日期和时间格式字符串的更多信息,请访问here