DateTime:解析未知格式

时间:2018-07-09 18:55:39

标签: c# datetime-format

以下代码将输出2018-10-03 16:40:50(而不是2018-03-10):

DateTime dateTime = new DateTime();
DateTime.TryParse("10/03/2018 4:40:50 PM", out dateTime );
MessageBox.Show(dateTime.ToString());

以下代码将正确解析日期(2018-03-10)

dateTime = DateTime.ParseExact("10/03/2018 4:40:50 PM", "dd/MM/yyyy h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
MessageBox.Show(dateTime.ToString());

有什么方法可以在不知道确切格式的情况下正确解析此日期?

服务器应用程序的当前区域性是en-ca(加拿大英语),我不知道要解析的字符串日期的确切格式。至少有一种方法可以解析日期,而无需在月份和日期之间进行好奇的交换?听起来像是一个简单的问题,但是却浪费了很多时间,并且几乎没有尝试任何在这里找到的东西。

谢谢

1 个答案:

答案 0 :(得分:0)

  • 最后使用TryParseExact和已知格式的数组列表。 (很丑,但是行得通)
  • 无法检测MM-DD-YYYY和DD-MM-YYYY。已知限制(我们的应用程序最终不支持此格式)

谢谢!