的CultureInfo。数字&日期欧洲格式与英语语言支持?

时间:2017-07-16 16:25:29

标签: c# .net asp.net-mvc cultureinfo

我想支持欧洲格式文化的英语。

日期应使用欧洲格式以英语显示。因此,应该显示“2017年7月16日星期日14:00”,而不是英国方式......实际上爱尔兰文化就可以了!

此外,例如当我需要显示货币时,我希望它被格式化为“1.500,00€”。现在,为了支持英语,如果我使用英国文化,我会得到英镑符号。如果我使用爱尔兰文化,我会获得“€1,500.00”,这不是在欧洲格式化货币的标准方式。

我希望我目前的申请状态是支持en-US和(如果有这样的话)en-EU。有任何想法吗?我是否需要创建自定义文化?有什么指针吗?

1 个答案:

答案 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);

这种方法的最大优点是,您可以创建自己的首选项,尽管其他人认为是逻辑的,并且这些方法支持自定义用户设置。

缺点是您需要为您支持的每个国家/地区创建语言和格式。