我完全被这个难住了。据我所见,我读过的 SO 上的文档和其他帖子说这应该可行。我一定错过了一些愚蠢的东西,但我就是看不到它。
我收到 FormatException 消息“字符串未被识别为有效日期时间”。在以下代码行:
return DateTime.ParseExact(value, DateFormat, null,
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);
value
是"11/04/2013"
DateFormat
是"dd/MM/yyyy"
- 现在的文化是
en-GB
- 我尝试了各种变体,
DateTimeStyles
但没有效果。
我最初的意图是格式ddd, dd/MMM/yyyy
,但这也不起作用(该实例中的值是Tue, 30/Apr/2013
)
我还尝试通过传入new CultureInfo("en-GB")
而不是null
我还将代码提取到它自己的控制台应用程序中,以查看环境是否有不同(ASP.NET MVC 3)
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var DateFormat = "dd/MM/yyyy";
var value = "30/04/2013";
var culture = new CultureInfo("en-GB");
var result = DateTime.ParseExact(value, DateFormat, culture,
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);
Console.WriteLine("\"{0}\" as \"{1}\" ==> {2}", value, DateFormat, result);
Console.ReadKey();
}
}
}
这仍然给了我同样的错误。