我完全被这个难住了。据我所见,我读过的 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();
        }
    }
}
这仍然给了我同样的错误。