dtr*_*ana 5 asp.net-mvc datetime
我在ASP.NET MVC 3站点中有一个奇怪的验证失败,其中一个文本框接受通过jqueryui选择的日期时间.该网站已经过定制,仅适用于es-ES文化,并且大部分时间都可以使用,但在该文本框中每次使用某个月时验证都会失败.datetime.parse方法适用于除march之外的每个月:
DateTime.Parse("15-feb-2012",CultureInfo.GetCultureInfo("es"), DateTimeStyles.None)
{15/02/2012 0:00:00}
Date: {15/02/2012 0:00:00}
DateTime.Parse("15-ene-2012",CultureInfo.GetCultureInfo("es"), DateTimeStyles.None)
{15/01/2012 0:00:00}
Date: {15/01/2012 0:00:00}
DateTime.Parse("15-abr-2012",CultureInfo.GetCultureInfo("es"), DateTimeStyles.None)
{15/04/2012 0:00:00}
Date: {15/04/2012 0:00:00}
Run Code Online (Sandbox Code Playgroud)
...
除了3月份,每个月都有工作,Marzo用西班牙语...
DateTime.Parse("15-mar-2012",CultureInfo.GetCultureInfo("es"), DateTimeStyles.None)
DateTime.Parse("15-mar-2012",CultureInfo.GetCultureInfo("es"), DateTimeStyles.None)' threw an exception of type 'System.FormatException'
base {System.SystemException}: {"String was not recognized as a valid DateTime."}
Run Code Online (Sandbox Code Playgroud)
任何的想法?
使用NUnit重现:
[Test]
[ExpectedException(typeof(FormatException), ExpectedMessage = "String was not recognized as a valid DateTime.")]
public void ParsingWithAbbreviatedSpanishMarchBlowsUp()
{
var dt = DateTime.Parse("15-mar-2012", CultureInfo.GetCultureInfo("es-ES"), DateTimeStyles.None);
}
Run Code Online (Sandbox Code Playgroud)
尝试设置格式,这有效:
var format = "dd-MMM-yyyy";
var input= "15-mar-2012";
var dt = DateTime.ParseExact(input, format, new CultureInfo("es-ES"));
Console.WriteLine(dt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2150 次 |
| 最近记录: |