如何比较日期时间的时间部分

Dev*_*per 33 .net c# datetime compare

让我们说我们有

DateTime t1 = DateTime.Parse("2012/12/12 15:00:00.000");
Run Code Online (Sandbox Code Playgroud)

DateTime t2 = DateTime.Parse("2012/12/12 15:03:00.000");
Run Code Online (Sandbox Code Playgroud)

如何在C#中比较它并说出哪个时间"晚于"?

Jus*_*ony 72

您可以使用TimeOfDay属性并使用Compare对它.

TimeSpan.Compare(t1.TimeOfDay, t2.TimeOfDay)
Run Code Online (Sandbox Code Playgroud)

根据文件:

-1  if  t1 is shorter than t2.
0   if  t1 is equal to t2.
1   if  t1 is longer than t2.
Run Code Online (Sandbox Code Playgroud)


kav*_*man 21

<,<=,>,>=,==运营商都直接上工作DateTimeTimeSpan对象.所以像这样的工作:

DateTime t1 = DateTime.Parse("2012/12/12 15:00:00.000");
DateTime t2 = DateTime.Parse("2012/12/12 15:03:00.000");

if(t1.TimeOfDay > t2.TimeOfDay) {
    //something
}
else {
    //something else
}
Run Code Online (Sandbox Code Playgroud)


mgn*_*nan 5

使用DateTime.Compare方法:

DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;

if (result < 0)
   relationship = "is earlier than";
else if (result == 0)
   relationship = "is the same time as";         
else
   relationship = "is later than";

Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
Run Code Online (Sandbox Code Playgroud)

编辑:如果你只是想比较时间,而忽略日期,你可以TimeOfDay像其他人建议的那样使用。如果您需要不那么细粒度的东西,您还可以使用HourMinute属性。

  • 是的,但 OP 只要求时间比较。如果您比较完整的刻度,则它不会测试例如 6AM 是否晚于 5AM,这似乎是问题所暗示的 (2认同)