这个帖子来自我以前的question。我需要创建包含String元素的路径的Seq[String]
,但是现在我还需要在日期之后添加数字7
,8
,... - 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
})
答案 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"