我有一个包含时间的字符串(从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
}
答案 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 {
}