Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用自定义DateTimeFormatInfo进行解析会引发异常_C#_Parsing_Datetime_Formatexception_Iformatprovider - Fatal编程技术网

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)