如何使用datetime

时间:2017-05-11 20:25:27

标签: scala

这个帖子来自我以前的question。我需要创建包含String元素的路径的Seq[String],但是现在我还需要在日期之后添加数字78,... - 22。此外,我无法使用LocalDate,因为它在上述问题的答案中提出:

path/file_2017-May-1-7
path/file_2017-May-1-8
...
path/file_2017-May-1-22
path/file_2017-April-30-7
path/file_2017-April-30-8
...
path/file_2017-April-30-22
..

我正在寻找灵活的解决方案。我目前的解决方案意味着手动定义日期yyyy-MMM-dd。但是,如果我需要包含两个以上的日期,例如10或100.此外filePathsList目前为Set[Seq[String]],我不知道如何将其转换为Seq[String]

val formatter = new SimpleDateFormat("yyyy-MMM-dd")
val currDay = Calendar.getInstance
currDay.add(Calendar.DATE, -1)
val day_1_ago = currDay.getTime
currDay.add(Calendar.DATE, -1)
val day_2_ago = currDay.getTime
val dates = Set(formatter.format(day_1_ago),formatter.format(day_2_ago))

val filePathsList = dates.map(date => {
  val list: Seq.empty[String]
  for (num <- 7 to 22) {
    list :+ s"path/file_$date-$num" + "
  }
  list
})

1 个答案:

答案 0 :(得分:3)

以下是我如何实现您概述的内容,调整days val以配置您关注的天数:

import java.text.SimpleDateFormat
import java.util.Calendar

val currDay = Calendar.getInstance
val days = 5

val dates = currDay.getTime +: List.fill(days){
  currDay.add(Calendar.DATE, -1)
  currDay.getTime
}
val formatter = new SimpleDateFormat("yyyy-MMM-dd")
val filePathsList = for {
  date <- dates
  num <- 7 to 22
} yield s"path/file_${formatter.format(date)}-$num"