2012-12-10 63 views
3

是否有可能指示DateTime.TryParseExact接受多個(任何)sepatators(指定的分隔佔位符,而不是特定的分離)?例如:DateTime.TryParseExact和不同的分隔符

DateTime.TryParseExact(performanceRow[5], "M/d/yyyy", 
    CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out startDate) 

如果日期以'/'字符作爲分隔符,這將起作用。不過,我剛收到一個帶有'。'的文件。作爲分隔符,解析失敗。

由於

回答

4

使用該變型TryParseExact

DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime%) 

MSDN link

第二參數是其被定義爲

格式的字符串數組的

類型:System.String []

s的允許格式的數組。

的描述說:字符串表示的格式必須指定格式恰好的至少一個相匹配。

+1

但是如果有人會用另一個未列在我的格式列表中的分隔符上傳文件呢?我只支持M/d/yyyy,但分隔符可以是任何字符。 – dragonfly

+1

嗯,這成爲一個不同的問題 - 它更像是我必須解析一些輸入,但我不知道輸入的格式。您的程序必須嚴格限定爲一組指定的格式。或者,讓發送文件的人也在文件內或通過單獨的字段發送格式。否則,你永遠不會知道如何解析。 – ryadavilli

1

可以在數組傳遞格式像下面,

string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", 
       "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", 
       "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", 
       "M/d/yyyy h:mm", "M/d/yyyy h:mm", 
       "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"}; 

通這種格式作爲TryParseExact方法第二個參數。

相關問題