【发布时间】:2014-04-22 13:51:45
【问题描述】:
我需要将一些格式为 "MMM-yy" 的字符串转换为 DateTime。我正在处理文化“{es-ES}”。
除了March(西班牙语Marzo)之外,它在所有月份都可以正常工作。 这引发了我这个异常:
'Convert.ToDateTime("Mar-13")' 抛出类型异常 'System.FormatException' System.DateTime {System.FormatException}
我试过了:
string format = "yyyyMM";
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;
result = DateTime.ParseExact("Mar-13", format, provider);
还有这个:
DateTime date = Convert.ToDateTime("Mar-13");
这很好用,例如:
“6 月 13 日”
“2 月 13 日”
“11 月 13 日”
...
编辑 真正的问题在于:
DateTime date = Convert.ToDateTime("Ene-13"); -> 好的
DateTime date = Convert.ToDateTime("Feb-13"); -> 好的
DateTime date = Convert.ToDateTime("Mar-13"); -> 崩溃
DateTime date = Convert.ToDateTime("Abr-13"); -> 好的
....
【问题讨论】:
-
我不明白。你在西班牙文化中有没有字符串?即使您将格式字符串固定为
MMM-yy,Dic-13也无法使用 InvariantCulture 转换为数据 -
是的,我有西班牙语,我尝试使用 InvariantCulture,因为我发现它是一个可行的解决方案
-
尝试使用
CultureInfo provider = new CultureInfo("ES-es")并将格式修复为 MMM-yy