【问题标题】:DateTime.ParseExact() - String was not recognized as a valid DateTime ddd MMM dd HH:mm:ss YYYY [closed]DateTime.ParseExact() - 字符串未被识别为有效的 DateTime ddd MMM dd HH:mm:ss YYYY [关闭]
【发布时间】:2022-02-01 16:31:41
【问题描述】:

我有一个字符串:

Fri Feb 14 00:15:38 2020"

我尝试使用ParseExact()解析这个字符串:

var time = DateTime.ParseExact(timestamp, "ddd MMM dd HH:mm:ss YYYY", new System.Globalization.CultureInfo("en-US"), System.Globalization.DateTimeStyles.None);

我尝试了几种文化。没有任何效果。

字符串“Fri Feb 14 00:15:38 2020”未被识别为有效的 DateTime。

【问题讨论】:

标签: c# datetime-format


【解决方案1】:

您可以做的一件事是使用格式字符串来输出您想要的日期:

var formatString = "ddd MMM dd HH:mm:ss YYYY";
var d = new DateTime(2020, 2, 14, 0, 15, 38);
Console.WriteLine(d);
Console.WriteLine(d.ToString(formatString));

Run that,你会得到这个:

Fri Feb 14 00:15:38 YYYY

现在我们可以清楚地看到,哎呀,看起来年份是错误的。修复它以使用小写的Ys:

    var formatString = "ddd MMM dd HH:mm:ss yyyy";
    var d = new DateTime(2020, 2, 14, 0, 15, 38);
    Console.WriteLine(d);
    Console.WriteLine(d.ToString(formatString));

now we see the correct value:

Fri Feb 14 00:15:38 2020

恰好匹配the documentation

我们现在也可以使用正确的格式字符串进行解析操作:

var time = DateTime.ParseExact(timestamp, "ddd MMM dd HH:mm:ss yyyy", new System.Globalization.CultureInfo("en-US"), System.Globalization.DateTimeStyles.None);

【讨论】:

猜你喜欢
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
  • 2011-01-12
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
相关资源
最近更新 更多