2016-06-14 40 views
2

所以我得到了一個字符串00:00:15:185,我需要告訴它大於15秒。比較C中的2個字符串時間#

時間格式爲HH:M:SS:FFF

這超過15秒要長是,但我不能正確地進行比較。

當前的代碼是這樣的:

value = "00:00:15:185";  
if (DateTime.Parse(value) > DateTime.Parse("00:00:15:000"){ 
    //do stuff 
} 

它給人的例外,當我運行它所有的時間和程序不能正常工作時,它應該

+0

可能的複製從這個? http://stackoverflow.com/questions/10290187/how-to-compare-time-part-of-datetime - 更好地使用DateTime.Compare或TimeSpan.Compare。 –

回答

5

您的字符串不表示一個時間,但一個的數量的時間。我們有TimeSpan

var value = "00:00:15:185"; 
if (TimeSpan.ParseExact(value, @"hh\:mm\:ss\:FFF", CultureInfo.InvariantCulture) 
     > TimeSpan.FromSeconds(15)) 
{ 
    //do stuff 
} 
+1

謝謝。我不知道這一點,事實證明,這只是一部分,這是錯誤的,但另一個問題。所以謝謝你幫我弄清楚故障在哪裏。 – Clarkinator

0

另一種選擇(除了@rob的答案),使用DateTime.ParseExact

var value = "00:00:15:185";  

    if (DateTime.ParseExact(value, "HH:mm:ss:fff", CultureInfo.InvariantCulture) > 
     DateTime.ParseExact("00:00:15:000", "HH:mm:ss:fff", CultureInfo.InvariantCulture)) 
    { 
     // logic here. 
    }