我完全被这个难住了。据我所知,我读过的文档和其他帖子都说这应该可行。我一定错过了一些愚蠢的东西,但我就是看不到它。
我收到一个 FormatException 消息“字符串未被识别为有效的日期时间”。在以下代码行上:
return DateTime.ParseExact(value, DateFormat, null,
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal);
-
value
is "11/04/2013"
-
DateFormat
is "dd/MM/yyyy"
- 现在的文化是
en-GB
- 我尝试过各种变体
DateTimeStyles
但没有效果。
我的初衷是为了格式ddd, dd/MMM/yyyy
但这也不起作用(该实例中的值是Tue, 30/Apr/2013
)
我还尝试通过传入强制文化为 en-GBnew 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();
}
}
}
这仍然给我同样的错误。