比较C#中的2个时间串

时间:2016-06-14 03:03:20

标签: c# string datetime

所以我有一个字符串00:00:15:185,我需要告诉它超过15秒。

时间格式为HH:m:ss:FFF

这显然超过15秒,但我无法正确比较。

目前的代码是:

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

当我一直运行它时它会给出例外情况,并且该程序在

时不起作用

3 个答案:

答案 0 :(得分:5)

您的字符串不代表时间,而是金额的时间。我们有TimeSpan

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

答案 1 :(得分: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.  
    }

答案 2 :(得分:0)

 DateTime time = DateTime.Now;
String result = time.ToString("HH:mm ");

 DateTime firstTimr = DateTime.ParseExact(reader["shift_start_time"].ToString(), "HH:mm:tt", null);
 String firstTimr1 = firstTimr.ToString("HH:mm ");
DateTime lastTime = DateTime.ParseExact(reader["Shift_last_time"].ToString(), "HH:mm:tt", null);
String lastTime1 = lastTime.ToString("HH:mm ");

if (DateTime.Parse(result) >= DateTime.Parse(firstTimr1) && (DateTime.Parse(result) <= DateTime.Parse(lastTime1)))
                    {
                       `enter code here` MessageBox.Show("First Shit");

                    }