這是我的要求:
startAt: LocalDateTime(...)
endAt: LocalDateTime(...)
interval: Int
生成一個seq,如下所示:
Seq(startAt -> startAt.plusHours(interval), ... , startAt.plusMultHours() -> endAt)
現在,我將 LocalDateTime 轉換為 unix(Long) 并用于Range完成此操作,有沒有更好的方法?
非常感謝!
uj5u.com熱心網友回復:
您可以獲得兩個日期之間的小時數差異,創建一個范圍并映射它:
val result = (0L to ChronoUnit.HOURS.between(startAt, endAt) by interval)
.map(startAt.plusHours(_))
uj5u.com熱心網友回復:
這套西裝適合你嗎:
scala> val start = LocalDateTime.of(2021, 1, 1, 0, 0)
val start: java.time.LocalDateTime = 2021-01-01T00:00
scala> val end = LocalDateTime.of(2021, 1, 1, 3, 30)
val end: java.time.LocalDateTime = 2021-01-01T03:30
scala> val interval = 1
val interval: Int = 1
scala> val seq = Iterator.iterate(start)(_.plusHours(interval)).takeWhile(end.isAfter).toSeq
val seq: Seq[java.time.LocalDateTime] = List(2021-01-01T00:00, 2021-01-01T01:00, 2021-01-01T02:00, 2021-01-01T03:00)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/312777.html
標籤:斯卡拉
