将C#字符串解析为DateTime

我有一个这样的字符串:250920111414

我想从该字符串创建一个DateTime对象。 截至目前,我使用substring并像这样做:

string date = 250920111414; int year = Convert.ToInt32(date.Substring(4, 4)); int month = Convert.ToInt32(date.Substring(2, 2)); ... DateTime dt = new DateTime(year, month, day ...); 

是否可以使用字符串格式来做同样的事情,没有子字符串?

绝对。 从字符串中ParseExact格式,可以使用ParseExact

 string format = "ddMMyyyyHHmm"; DateTime dt = DateTime.ParseExact(value, format, CultureInfo.InvariantCulture); 

TryParseExact

 DateTime dt; bool success = DateTime.TryParseExact(value, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt); 

后一个调用只会在解析失败时返回false ,而不是抛出exception – 如果你可能有不良数据导致整个任务失败(例如它是用户输入,你只想提示它们)那么这就是更好的使用电话。

编辑:有关格式字符串详细信息的更多详细信息,请参阅MSDN中的“自定义日期和时间格式字符串” 。

你可以使用:

 DateTime dt = DateTime.ParseExact( date, "ddMMyyyyHHmm", CultureInfo.InvariantCulture);