C# DateTime.TryParseExact()返回false

C# DateTime.TryParseExact()返回false,c#,datetime,tryparse,C#,Datetime,Tryparse,我有以下代码 public static void Main() { DateTime D = new DateTime(); D = DateTime.Now; string s1 = D.ToString("ddMMMMyyyy"); Console.WriteLine(s1); Console.WriteLine(DateTime.TryParseExact(s1, "ddMMMyyyy", CultureInfo.InvariantCultur

我有以下代码

public static void Main()
{
    DateTime D = new DateTime();
    D = DateTime.Now;

    string s1 = D.ToString("ddMMMMyyyy");
    Console.WriteLine(s1);

    Console.WriteLine(DateTime.TryParseExact(s1, "ddMMMyyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out D));
    Console.ReadKey();
}
有人能帮我认识到我犯的明显错误吗

我已将DateTime.Now转换为自定义格式的字符串,并尝试将其转换回,但TryParseExact返回false。

简短回答:MMMM不等于MMM


旁注:用CultureInfo.InvariantCulture解析这样的字符串只能识别英文名称,似乎在使用其他语言的机器上会失败。

我现在想踢自己一下。呵呵,非常感谢。不,我需要那种格式,不是随意的。必须将日期作为表名存储在mysql@Nahum利特文:这是对别人答案的大胆修改。抱歉,我已回滚您输入的代码,因为它似乎无法在我的计算机上正确编译您的代码返回1.1.0001作为日期。请考虑用测试代码发布分离的答案。使用字符串变量可能是const来表示格式。通过这种方式,您将避免魔术字符串和重复,这样的问题在将来不会发生。