如何在运行PCL Xamarin.Forms项目时将 DateTime
对象格式化为设备默认日期时间格式的字符串,我的部署目标包括iOS,Android和Windows .
根据thread和bug, DateTime.ToShortString()
无法按照MSDN要求运行 .
是否有任何基于表单的解决方案或我是否需要从特定于平台的项目中获取它?
对于Android,我可以使用DI从Native项目执行以下操作:
String format = Settings.System.GetString(this.context.ContentResolver
, Settings.System.DateFormat);
string shortDateString = dateTime.ToString(format);
或者我也可以使用它(以下代码的C#版本):
DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
查看this SO问题以更清楚地理解需求(它仅适用于android,我希望它适用于所有平台,因为这是一个Xamarin.Forms问题) .
由于Xamarin Forms中的 DatePicker
和 TimePicker
以设备格式显示日期和时间,我希望有一种方法可以在PCL中获取它 .
PCL中还有一个 Device
类,其中包含平台,习语等信息 .
2 回答
由于我找不到任何PCL实现,我使用DI来实现该要求 .
在PCL中的用法:
PCL:
Android:
iOS:
Windows:
辅助方法:
使用当前的Xamarin Forms版本,您可以尝试:
这以特定于设备的区域设置的格式提供日期,并跨平台工作 .
或者:
对于特定格式,可以尝试以下内容:
第一个也是最后一个看起来很酷 . 但只有第二和第三个选项适用于PCL .