如何将DateTime与字符串进行比较

时间:2010-04-27 20:56:01

标签: c# .net datetime

我有一个包含时间的字符串(从DB获得):

string user_time = "17:10:03"; //Hours:minutes:seconds
DateTime time_now = DateTime.Now;

如何将此字符串与DateTime进行比较?我想要这样的事情:

if(time_now > user_time)
{
    //Do something
}
else
{
  //Do something
}

6 个答案:

答案 0 :(得分:16)

DateTime支持比较,但首先你需要解析日期时间字符串,DateTime.Parse()应该足够了:

var dateTimeStr = "17:10:03";
var user_time = DateTime.Parse( dateTimeStr );
var time_now = DateTime.Now;

if( time_now > user_time )
{
  // your code...
}

请记住,比较日期/时间有时需要了解时区以使比较有意义。

答案 1 :(得分:2)

问题是DateTime.Now包含日期,“17:10:03”没有。这样做:

    Dim dbaseTime As TimeSpan = TimeSpan.Parse("17:10:03")
    If DateTime.Now.TimeOfDay > dbaseTime Then
        Console.WriteLine("Let's go home")
    End If

尽一切力量将该字符串列类型转换为日期时间列。

答案 2 :(得分:1)

您可以使用DateTime.Compare()DateTime.Parse()将字符串转换为DateTime对象。

答案 3 :(得分:1)

DateTime.Parse将字符串转换为DateTime对象,然后可以用它进行比较。

答案 4 :(得分:1)

if (DateTime.Now > DateTime.Parse(user_time))
{
   ...
}

但是你真的不应该把时间存储为字符串,你应该使用数据库的本机时间或日期时间格式,这样你就可以使用查询中的时间值,并正确地索引它们。

答案 5 :(得分:0)

if (time_now > Date.Parse(DBString)) {

} else {

}
相关问题