DateTime.Parse接受一个字符串并返回等效的DateTime。
有没有办法让解析器使用这种格式?
例如,2011年7月19日将返回M / dd / yyyy,而19-7-2011将返回dd-M-yyyy。
如果DateTime.TryParseExact也返回了正在使用的格式,那么它对我有用。
答案 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将使用哪种格式来解析它。