0

如何比较哪个时间字符串更大;是 24 小时制还是 12 小时制?

例如,"9:42:54" vs "19:25:31""9:42:54 AM" vs "7:25:31 PM"

4

1 回答 1

4

为了能够比较时间格式的字符串,您需要将它们转换为 TimeSpan 或 DateTime 对象,但前者似乎更相关:

TimeSpan time1 = TimeSpan.Parse("9:42:54");
TimeSpan time2 = TimeSpan.Parse("19:25:31");

或者

TimeSpan time1 = DateTime.Parse("9:42:54").TimeOfDay;
TimeSpan time2 = DateTime.Parse("19:25:31").TimeOfDay;

但是,使用TimeSpan.Parse12 小时时间字符串格式会抛出System.FormatException. 改为使用并仅占用已创建对象DateTime.Parse的时间部分:DateTime

TimeSpan time1 = DateTime.Parse("9:42:54 AM").TimeOfDay;
TimeSpan time2 = DateTime.Parse("7:42:54 PM").TimeOfDay;

作为一个好处,转换为 TimeSpan 还可以让您有机会应用TimeSpan 运算符,如常规比较、减法、加法等:

if (time1 > time2)
{
    // time1 is greater
}
else if (time1 < time2)
{
    // time2 is greater
}
else
{
    // They are equal
}

如果您需要明确指定字符串的时间格式,也可以使用TimeSpan.ParseExact 。

于 2013-11-03T09:23:22.783 回答