我有一个字符串列表,每个字符串都包含这样的时间:
"03:00 AM", "12:30 PM", "16:15"
我需要按顺序对它们进行排序:将“am”时间放在首位并比较小时数,而不仅仅是字符串中的第一个数字。
最佳答案
这适用于 groovy,适用于您提供的所有情况:
List dates = [ "16:15", "12:30 PM", "07:00", "03:00 AM" ]
dates.sort { d ->
[ 'h:mm a', 'H:mm' ].findResult { fmt ->
try {
Date.parse( fmt, d ).time
} catch( e ) {}
}
}
它基本上尝试使用 AM/PM,如果失败则尝试不使用它
关于java - 如何在 Java 或 Groovy 中对时间字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11976063/