Java - 打印过去 24 小时内保存到文本文件的数字

标签 java time

我无法提供任何示例代码,因此这将是一个更多的问题,您也许可以向我提供正确的方向。

本质上,在游戏回合结束时,我将分数导出到文本文件。我的文本文件看起来像

1
3
4
1
2

现在我想做的是,获取过去 24 小时内保存到文本文件中的前 5 个分数。

我的想法是,一旦我得到过去 24 小时保存的分数,我会将它们添加到集合中并对它们进行反向排序,然后使用 for 循环打印 5。但我不知道如何获得时间。

最佳答案

您是对的,您需要更改文件的格式。我想使用 Instant.toString()LocalDateTime.toString() 来生成时间戳。所以每一行都会变成这样

5 2017-11-06T14:52:31.434Z

在示例中,5 是分数,2017-11-06T14:52:31.434Z 是InstantInstantLocalDateTime 的字符串表示形式都不包含任何空格,因此从文件中的空格处分割每一行,这样您就可以分别获得分数和时间戳。将时间戳反馈给 Instant.parse()LocalDateTime.parse()

从头开始读取文件,跳过超过 24 小时的时间戳。一旦遇到小于 24 小时的分数,就开始将分数添加到您的 ArrayList 中。

要确定时间戳是否早于 24 小时,请将其与 Instant.now().minus(Duration.ofHours(24))LocalDateTime.now(ZoneId. of("Europe/Rome")).minusHours(24) (替换您想要的时区)。这些类具有用于比较的方法 isBeforeisAfter

仅当您确定所有事情仅发生在一个时区内时才使用 LocalDateTimeInstant 在不同时区都是安全的。

关于Java - 打印过去 24 小时内保存到文本文件的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47676456/

相关文章:

java - 如何将派生类传递给接受父类型的函数

java - LTE网络下Android开发CellID

Java:如何实现 N-Queens?

java - 根据修订日期映射映射开始日期和结束日期

python - 我无法弄清楚这个时间戳的含义

javascript 数组和 jsf/richfaces

java - 在 Android 的 SharedPreferences 中存储时间的正确方法?

python - 如何在 while 循环中构造此计时代码以更快地运行?

mysql日期/时间计算

java - 如何在结果集中获取字符串(Table.Column) JayBird