list - 获取scala中两个日期之间的年/月/日/小时列表
问题描述
我有以下两个日期,我想要一个 scala 函数,它返回两个日期之间的月份列表,例如 31-12-2019 和 01-02-2020。
知道如何解决这个问题吗?
解决方案
使用java.time
图书馆。
import java.time.LocalDate
import java.time.format.DateTimeFormatter
val start = LocalDate.parse("31-12-2019"
,DateTimeFormatter.ofPattern("dd-MM-yyyy"))
val stop = LocalDate.parse("01-02-2020"
,DateTimeFormatter.ofPattern("dd-MM-yyyy"))
LazyList.iterate(start)(_.plusMonths(1))
.takeWhile(_.isBefore(stop.plusMonths(1)))
.toList
.map(_.format(DateTimeFormatter.ofPattern("yyyy-MM")))
//res0: List[String] = List(2019-12, 2020-01, 2020-02)
请注意,“月”仅被提及两次,如.plusMonths()
. 将它们更改为.plusDays()
or .plusYears()
,这一切都按预期工作。当然,必须根据需要调整输出呈现格式。
推荐阅读
- ionic-framework - Google recaptcha 在 IOS 的 Ionic 应用程序中不起作用
- python - pdb 无法调试到后向挂钩
- vba - VBA-Word:在文档中的所有日期之前添加换行符
- python-telegram-bot - python-telegram-bot 键盘没有出现
- php - 致命错误:在第 28 行调用一个成员函数 prepare() on null
- bash - 读取所有 txt 文件并为每个文件分配一个符号链接
- java - Eclipse 中的 Gradle 多项目设置
- javascript - 在 Dexie 迭代中使用 setTimeout
- java - 如何解决 Maven 提供的范围问题
- visual-studio-code - 切换资源管理器栏