Java / Scala是将两个DateTime对象区分为DateTime列表的最佳方法

时间:2017-01-06 11:34:07

标签: java scala datetime

我需要一个方法来返回由例如小时

分割的DateTime对象列表

实施例

DateTime start = DateTime.now() //2017-01-01 11:00:00
DateTime end =  DateTime.now().plusHours(10) //2017-01-01 21:00:00

预期结果

List[2017-01-01 **11**:00:00,2017-01-01 **12**:00:00,2017-01-01**13**:00:00...
2017-01-01 **21**:00:00]

现在我正在使用我不满意的解决方法

while(start.isBefore(end)){
  start = startVar.plusHours(1)
  //do something with start    
}

请分享您的想法。

1 个答案:

答案 0 :(得分:3)

如果您知道所需的List中有多少元素,则可以使用List.iterate

List.iterate(DateTime.now(), 10)(_.plusHours(1))

但是如果您有开始日期和结束日期,则可以使用Iterator.iterate然后将其转换为List(或直接处理Iterator中的值):

val start = DateTime.now()
val end = DateTime.now().plusHours(10)

Iterator.iterate(start)(_.plusHours(1)).takeWhile(_.isBefore(end)).toList