【问题标题】:DateTime.TryParseExact() is returning falseDateTime.TryParseExact() 返回 false
【发布时间】:2014-10-26 09:03:36
【问题描述】:

我有以下代码

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。

【问题讨论】:

  • 使用string 变量(可能是const)来表示格式。这样你就可以避免魔术串和重复,以后就不会出现这样的问题了。

标签: c# datetime tryparse


【解决方案1】:

简答:MMMM 不等于 MMM

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

【讨论】:

  • 现在想踢自己。呵呵,非常感谢。
  • 不,我需要那种格式,不是任意的。必须将日期作为表名存储在 mysql 中
  • @Nahum Litvin:这是对别人回答的一个相当大胆的修改。抱歉,我已经回滚了您放置的代码,因为它似乎无法在我的机器上正确编译(您的代码返回 1.1.0001 作为日期)。请考虑使用经过测试的代码发布单独的答案。
猜你喜欢
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多