DateTime TryParseExact和填充

3 .net c# datetime

我正在调用TryParse一个我要解析的字符串DateTime.简单的东西.当格式符合我的预期时,一切正常.但是,当日期的每个组件/某些组件都是单个数字时,解析将失败.

例:

var dateFormat = "yyyy-dd-MM hh:mm:ss";
var dateString = "2006-4-1 2:3:5";

DateTime.TryParseExact(dateString, dateFormat, 
                       CultureInfo.InvariantCulture, DateTimeStyles.None, out result)
Run Code Online (Sandbox Code Playgroud)

如果我改变dateString"2006-04-01 02:03:05",它解析得很好.

我如何告诉解析器解释202以上解析成功?

我试过的

手动填充日期时间的每个部分以确保其符合格式.这样可行,但感觉不是很优雅.这是唯一的方法吗?

我也试过使用一种格式m而不是成功,但没有成功mm.

Dmi*_*nko 5

只是用

 // please note single letters (d, M, h, m, s) whenever you allow single digits
 var dateFormat = "yyyy-d-M h:m:s";
Run Code Online (Sandbox Code Playgroud)

你会得到它:

var dateString = "2006-4-1 2:3:5";

DateTime.TryParseExact(dateString, dateFormat, 
                       CultureInfo.InvariantCulture, DateTimeStyles.None, out result)
Run Code Online (Sandbox Code Playgroud)

  • @JᴀʏMᴇᴇ:没关系:*单个*字母允许*单个数字*数字(以及两位数字:`1`,`01`,`22`等) (2认同)