java - 有没有办法可以在Java中打印两个纪元时间之间的所有天数?

标签 java date datetime java-8 date-range

//[Sat 2018-12-29 13:30:00 UTC]
final long startTs = 1546090200000L

//[Wed 2019-01-02 09:12:00 UTC]
final long endTs = 1546420320000L

有没有办法使用 LocalDateTime 打印这两个时间之间的所有天数?

理想的输出是:

2018-12-29

2018-12-30

2018-12-31

2019-01-01

2019-01-02

最佳答案

您可以使用LocalDateTime,例如:

LocalDateTime startLDT = LocalDateTime.ofInstant(Instant.ofEpochMilli(startTs), ZoneId.systemDefault());
LocalDateTime endLDT = LocalDateTime.ofInstant(Instant.ofEpochMilli(endTs), ZoneId.systemDefault());
while (startLDT.isBefore(endLDT)) {
    System.out.println(startLDT.format(DateTimeFormatter.ISO_LOCAL_DATE));
    startLDT = startLDT.plusDays(1);
}

此循环需要几毫秒并创建 LocalDateTime 的实例。然后,在每次迭代中,如果较早的日期早于较晚的日期,则以 yyyy-MM-dd 格式打印并按天递增。

关于java - 有没有办法可以在Java中打印两个纪元时间之间的所有天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57874627/

相关文章:

Java ArrayList的创建、编辑和删除

Java - 如何在文件中存储(多子)树?

java - 库中的 Spring 注解配置

java - 使用 char[] 参数通过 JNI 调用方法

c# - 在数据库中将日期/时间存储为 UTC

javascript - Google 要求图表的 JavaScript 日期时间格式是什么?

javascript - 将用户输入的确切日期从 Javascript 传递到 .NET

php - 为什么 php datetime diff 取决于时区?

javascript - @grid MVC 将日期转换为本地时区

c# - 为什么 GETDATE() 在 SSMS 和 C# Microsoft.Practices.EnterpriseLibrary.Data 上运行时会产生不同的结果?