如何获取已解析字符串的格式

时间:2011-07-20 03:38:25

标签: c# .net parsing format

DateTime.Parse接受一个字符串并返回等效的DateTime。

有没有办法让解析器使用这种格式?

例如,2011年7月19日将返回M / dd / yyyy,而19-7-2011将返回dd-M-yyyy。

如果DateTime.TryParseExact也返回了正在使用的格式,那么它对我有用。

4 个答案:

答案 0 :(得分:4)

这是不可能的,因为DateTime格式与特定输出之间的映射不是同构的(每个输出没有针对单个格式的逆映射) - 仅考虑案例11-07-2011 - 这是dd-MM-yyyy还是MM-dd-yyyy?

答案 1 :(得分:1)

请参阅http://msdn.microsoft.com/en-us/library/1k1skd40.aspx特别是备注部分。

获取所需格式的最佳方法是阅读文档。

答案 2 :(得分:0)

DateTime.Parse 使用当前线程的当前区域性。 Thread.CurrentThread.CurrentCulture.DateTimeFormat 会为您提供可用于检查格式的 DateTimeFormatInfo 的只读实例。

ShortDatePattern 属性是您要查找的属性。

这解决了有关解析器使用的格式的问题,但事后无法获得格式。

答案 3 :(得分:0)

循环遍历您一次传递给DateTime.TryParseExact的格式列表。

当你最终得到一个真正的价值时,你就会确切地知道.Net将使用哪种格式来解析它。