2012-03-22 71 views
2

爲什麼此代碼拋出異常?帶有自定義DateTimeFormatInfo的DateTime.Parse拋出異常

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); 
+0

你假設'DateTime.Parse'方法將使用'FullDateTimePattern'。 – Oded 2012-03-22 12:10:18

回答

6

您的格式字符串和日期字符串不匹配。

您似乎忘記了日期字符串中的小時或分鐘部分。

此:

var dateTime = "2012-03-21_15.12"; 

也許應該是這樣的:

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) 
+0

仍然不起作用。我嘗試過這個。 – Aliostad 2012-03-22 12:15:27

+1

@Aliostad - 它使用'ParseExact'時有效。 – Oded 2012-03-22 12:18:38

+0

是的!非常感謝。 – 2012-03-22 12:21:11

1

您可能需要使用DateTime.ParseExact,因爲這將一個日期時間格式模式作爲參數。

DateTime.ParseExact