C# 使用自定义DateTimeFormatInfo进行解析会引发异常
为什么这段代码会引发异常C# 使用自定义DateTimeFormatInfo进行解析会引发异常,c#,parsing,datetime,formatexception,iformatprovider,C#,Parsing,Datetime,Formatexception,Iformatprovider,为什么这段代码会引发异常 var dateTime = "2012-03-21_15.12"; var format = new DateTimeFormatInfo() { FullDateTimePattern = "yyyy-MM-dd-HH_mm.ss" }; // FormatException: String was not recognized as a valid DateTime. var parse = DateTime.Parse(dateTime, format)
var dateTime = "2012-03-21_15.12";
var format = new DateTimeFormatInfo()
{
FullDateTimePattern = "yyyy-MM-dd-HH_mm.ss"
};
// FormatException: String was not recognized as a valid DateTime.
var parse = DateTime.Parse(dateTime, format);
格式字符串和日期字符串不匹配 您似乎忘记了日期字符串中的小时或分钟部分 这: 应该看起来像:
var dateTime = "2012-03-21-15_54.12";
我建议使用DateTime.ParseExact
:
DateTime.ParseExact("2012-03-21-16_15.12",
"yyyy-MM-dd-HH_mm.ss",
CultureInfo.InvariantCulture,
DateTimeStyles.None)
您可能希望使用DateTime.ParseExact,因为这将采用DateTime格式模式作为参数
您假设
DateTime.Parse
方法将使用fulldatetime模式。
DateTime.ParseExact("2012-03-21-16_15.12",
"yyyy-MM-dd-HH_mm.ss",
CultureInfo.InvariantCulture,
DateTimeStyles.None)