MVC日期时间模型绑定失败的西班牙文化

时间:2018-02-14 17:11:55

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

在MVC项目中,我遇到格式的西班牙语日期问题:dd MMM yyyy HH:mm转换为:14 feb. 2018 10:56

web上的

我将文化定义为:

<globalization culture="es-CR" uiCulture="es"/>

我的模型几乎可以绑定任何日期而没有问题,但问题是3月,西班牙语中的“Marzo”,显示为mar.包含月份3月的任何日期都未正确绑定到模型和是默认日期时间:1 ene. 0001 00:00:00

我认为问题在于C#无法正确解析日期,因为3月份的短月定义和西班牙语周二的短周日定义相等。

March -> Marzo -> mar.
Tuesday -> Martes -> mar

有什么解决方法吗?

如果没有,任何指南,所以我可以编写自己的日期时间解析绑定方法。仅作为最后一个资源选项。

注意:与任何西班牙文化相同的行为,es es-MX es-US等......

1 个答案:

答案 0 :(得分:0)

您可以使用DateTime.ParseExact方法使用英语DateTime将输入解析为CultureInfo值。然后,您可以将DateTime.ToString方法与西班牙语CultureInfo一起使用,将DateTime值转换为字符串。

var input = "Tuesday, July 26, 2011";
var format = "dddd, MMMM dd, yyyy";

var dt = DateTime.ParseExact(input, format, new CultureInfo("en-US"));

var result = dt.ToString(format, new CultureInfo("es-ES"));
// result == "martes, julio 26, 2011"

考虑到西班牙语用户可能比您的自定义格式更喜欢西班牙语标准格式:

var result = dt.ToString("D", new CultureInfo("es-ES"));
// result == "martes, 26 de julio de 2011"