2014-09-10 175 views
0

我有下面的代碼Datetime.parseexact拋出錯誤

inputdatetime值"2014/09/11 8:06 AM" 的日期格式爲"yyyy/MM/dd h:mm a"

CultureInfo culture = CultureInfo.InvariantCulture; 

string dateforamat = string.Concat(date, " ", time); 

returnValue = DateTime.ParseExact(inputDateTime, dateforamat, culture); 

我收到格式異常

+0

請注意日期格式字符串中的原始斜槓('/')字符實際上代表[日期分隔符](http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx# dateSeparator),這取決於您指定的文化。我會建議用單引號('yyyy'/'MM'/'dd')圍繞斜線,以避免長期的意外。 – 2014-09-10 09:21:40

+0

@FrédéricHamidi:你可以通過'CultureInfo.InvariantCulture'阻止OP的操作。 – 2014-09-10 09:23:21

+0

@Tim,讓提問者直接通過'InvariantCulture',就像你在答案中所做的那樣,我什麼都不會說。然而,將它存儲在一個局部變量中會讓我認爲它現在或將來可能會在調用ParseExact()之前被修改。 – 2014-09-10 09:26:05

回答

2

使用tt,而不是a

DateTime.ParseExact("2014/09/11 8:06 AM", "yyyy/MM/dd h:mm tt", CultureInfo.InvariantCulture); 

閱讀:The "tt" Custom Format Specifier

+0

謝謝蒂姆。這對我有效 – user2392525 2014-09-10 09:32:33