C# 如何将日期 25APR18 转换为 2018-04-26?

C# How to convert date 25APR18 to 2018-04-26?

这个问题可能已经在这里得到了回答,但我找不到任何答案。 我正在尝试将字符串 25APR18 转换为 2018-04-25。

我尝试执行以下操作:

DateTime.ParseExact("25APR18", "yyyy-mm-dd", CultureInfo.InvariantCulture);

但它没有转换并给我错误说 "String was not recognized as a valid DateTime."

我找不到正确的解决方案。

有什么建议吗?

您可以使用:

DateTime date = DateTime.ParseExact("25APR18", "ddMMMyy", CultureInfo.InvariantCulture);

字符串格式区分大小写,表示您要匹配的输入格式。小写 mm 代表分钟,但您需要 月份缩写名称 MMM,这是您发布的代码的一个问题。可以找到格式说明符的完整列表 here

有了 DateTime 对象后,您可以将日期检索为具有新格式的字符串:

string formattedDate = date.ToString("yyyy-MM-dd");

产生:

2018-04-25

你的日期解析代码应该是

DateTime.ParseExact("25APR18", "ddMMMyy", CultureInfo.InvariantCulture);