如何比较哪个时间字符串更大;是 24 小时制还是 12 小时制?
例如,"9:42:54" vs "19:25:31"
或"9:42:54 AM" vs "7:25:31 PM"
。
如何比较哪个时间字符串更大;是 24 小时制还是 12 小时制?
例如,"9:42:54" vs "19:25:31"
或"9:42:54 AM" vs "7:25:31 PM"
。
为了能够比较时间格式的字符串,您需要将它们转换为 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.Parse
12 小时时间字符串格式会抛出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 。