我想支持欧洲格式文化的英语。
日期应使用欧洲格式以英语显示。因此,应该显示“2017年7月16日星期日14:00”,而不是英国方式......实际上爱尔兰文化就可以了!
此外,例如当我需要显示货币时,我希望它被格式化为“1.500,00€”。现在,为了支持英语,如果我使用英国文化,我会得到英镑符号。如果我使用爱尔兰文化,我会获得“€1,500.00”,这不是在欧洲格式化货币的标准方式。
我希望我目前的申请状态是支持en-US和(如果有这样的话)en-EU。有任何想法吗?我是否需要创建自定义文化?有什么指针吗?
答案 0 :(得分:0)
在我们的应用程序中,所有DateTime
个对象都存储在UTC
中,并通过我们框架中的辅助方法转换为正确的表示形式:
public static string ToString(DateTime? date, string format)
{
if (date.HasValue)
return String.Format("{0:}"+format, date);
else return "";
}
从我们存储的语言中检索格式。
表示货币的 decimal
属性也在我们的框架中通过辅助方法转换。为此,我们使用NumberFormatInfo
:
numberFormat = new NumberFormatInfo();
numberFormat.CurrencyDecimalSeparator = ".";
numberFormat.CurrencyGroupSeparator = "";
numberFormat.NumberDecimalSeparator = ".";
numberFormat.NumberGroupSeparator = "";
然后使用创建的NumberFormatInfo
:
price.ToString(numberFormat);
这种方法的最大优点是,您可以创建自己的首选项,尽管其他人认为是逻辑的,并且这些方法支持自定义用户设置。
缺点是您需要为您支持的每个国家/地区创建语言和格式。