Dieser Thread stammt aus meiner vorherigen question. Ich muss Seq[String]
erstellen, die Pfade als String-Elemente enthält, aber jetzt muss ich auch die Nummern 7
, 8
, ...- 22
nach einem Datum hinzufügen. Ich kann auch nicht verwenden LocalDate
, wie es in der Antwort auf die oben genannte Frage vorgeschlagen wurde:So automatisieren Sie die Erstellung von String-Elementen mit datetime
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
..
ich für eine flexible Lösung bin auf der Suche. Meine aktuelle Lösung beinhaltet die manuelle Definition von Daten yyyy-MMM-dd
. Es ist jedoch nicht effizient, wenn mehr als 2 Daten, z. 10 oder 100. Darüber hinaus filePathsList
ist derzeit Set[Seq[String]]
und ich weiß nicht, wie man es in Seq[String]
umwandeln kann.
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
})
Set [Seq [Zeichenfolge]] kann leicht umgewandelt werden zu Seq [String] via flatMap – Tanjin
@Tanjin: Ich habe es endlich mit '.toSeq.flatten' gemacht, aber die Schlüsselfrage bleibt immer noch - wie man solche String Elemente für N Daten flexibel erstellen kann. nicht nur 2, wie es im Code angezeigt wird. – user7379562