当前位置: 首页 > 知识库问答 >
问题:

表列中的java日期排序不正确

公孙霖
2023-03-14

我有一个Java日期,它被转换成字符串,这样就可以用以下样式查看它:

“MM/dd/yyyy hh:MM a”

i、 e2022年11月24日晚上11:42

现在的问题是,当我对日期列进行排序时,日期并没有按应有的顺序进行排序。

当前行为:11/24/2019 , 11/25/2022 , 11/26/2019预期行为:11/24/2019 , 11/26/2019, 11/25/2022

我知道这是因为排序是基于字符串发生的。

我的问题是:有没有办法保留我想要显示日期的格式,并且仍然能够将它们作为日期排序?我可以把它们转换成字符串以外的任何形式吗?

请注意,我无法编辑排序机制。我唯一的选择是为专栏提供一个合适的日期格式。

共有1个答案

蒲勇
2023-03-14

你的问题中没有足够的信息来完全理解上下文。

因此,我将采取以下假设:

  • 使用java

对于列表中的所有记录,您应该将这些字符串转换为日期,然后对日期值进行排序。

您可以通过几行代码轻松地使用streams和Lambda完成所有这些操作:

// a representation of your data
List<YourRecord> records = getRecords();

// a formatter
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm", Locale.ENGLISH);

// use streams
List<YourRecord> dateSortedRecords = records.stream()
// sort converting the strings to date
.sort((r1,r2)->formatter.parse(r1).compareTo(formatter.parse(r2)))

// collect the new sorted data from stream
.collect(Collectors.toList());
 类似资料:
  • 预期:我将从返回的API中获取日期时间字符串。该值应在表格中显示为'DD-MM-YYYY HH:MM。Vuetify附带了一个数据表组件,可以对数据进行升序和降序排序。我还想对日期使用此功能,使其按升序和降序排序。 简短的问题:应用编程接口中的日期应该以表中的另一种“样式”保存和显示,但是排序功能使用真实的日期对象。 我当前的代码:

  • 问题内容: 我有一个日期字符串的任意列表(mm-yyyy),如下所示: 我需要此列表首先按年(升序)级别排序,然后按月(升序)级别排序..以便逻辑顺序可以是: 我该如何实现? 问题答案: 尝试这个:

  • 我有一个对象列表,其中的数据如下: XYZ 11-10-2012 ABC 11-10-2012 PQR 20-04-2012 IJK 24-08-2012 MnO 22-05-2014

  • 问题内容: 我有一个来自Type的列表,我想按日期元素对该列表进行排序。我用谷歌搜索,看到了一些具有可比性的解决方案,但是有可能在不实现我的类的接口的情况下做到这一点吗?我的列表如下所示:list [{id = 33,text = test1,date = 06.02.15},{id = 81,text = test2,date = 10.01.15}]现在,我想将两者进行比较元素,并希望按日期降

  • 问题内容: 如何排序日期对象列表?例如,我有未排序的日期对象列表。如何从此列表中获取最大值/最小值? 问题答案: 使用列表排序方法: 有关如何排序的更多信息。

  • 我正在开发一个基于SqlLiteDataBase的Android应用程序。使用query方法查询数据库时,我希望按日期列升序排序。看来订货人不工作了。 调试期间的游标mQuery字段显示以下内容: (为了方便起见,我删除了不相关的列) 运行查询后,我想检查是否有任何条目,因此我调用: 然后我做一些逻辑,每当我想移动到光标上的下一行时,我运行: DateText列定义为DATETIME: 你能告诉我