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

标签 java sorting groovy

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

"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/

相关文章:

python - python中根据名称对文件进行排序

json - 如何使用Groovy将JSON数据元素解析为域对象

grails - 在grails中,为什么我必须为条件创建一个变量?

gradle - Codenarc奇怪的依赖关系

java - 使用java代码读取excel表格

java - WLI 转换 xQuery 空节点

python - 在 Python 中按出现次数排序向量列表

python - 按计数对 Pandas 多索引进行排序?

java - 在java中生成随机字符串

Java 套接字 : Request-response pattern with object streams