如何在Java或Groovy中对时间字符串列表进行排序

Vad*_*nko 3 java sorting groovy

我有一个字符串列表,每个字符串都包含这样的时间:

"03:00 AM","12:30 PM","16:15"

我需要按顺序对它们进行排序:首先放"am"次并比较小时数,而不仅仅是字符串中的第一个数字.

tim*_*tes 13

这适用于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 ) {}
  }
}
Run Code Online (Sandbox Code Playgroud)

它基本上尝试使用AM/PM,如果失败则尝试不使用它