我有一个字符串,里面包含了一个时间(从数据库获取):
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
}
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...
}
请记住,比较日期/时间有时需要意识到时区,才能使比较具有意义。
Dim dbaseTime As TimeSpan = TimeSpan.Parse("17:10:03")
If DateTime.Now.TimeOfDay > dbaseTime Then
Console.WriteLine("Let's go home")
End If
尽一切可能将字符串列类型转换为日期时间列。
DateTime
的实例。 - Darin DimitrovDateTime.Parse
最初并不是这个答案的一部分,至少在我发表评论时不是。 - Darin Dimitrovif (DateTime.Now > DateTime.Parse(user_time))
{
...
}
但是你真的不应该将时间存储为字符串,而应该使用数据库的本地时间或日期时间格式,这样你就可以在查询中使用时间值,并正确地对它们进行索引。
if
语句中使用的时间。 - Allon Guralnekif (time_now > Date.Parse(DBString)) {
} else {
}
DateTime.Parse(string)
时,该方法会假定当前日期,因此可以与DateTime.Now
进行比较而没有任何问题。 - Allon GuralnekDateTime.Parse(string)
时找到答案。 - Allon Guralnek