在 Scala 中将日期字符串转换为日期

Convert Date String to Day in Scala

我有一个日期字符串

val ts = "2020-02-05 15:12:01-0800"

我需要获取到一周最后一天的值。即 2020-02-08

这是我到目前为止使用 SimpleDateFormat 所做的

val DATE_FORMAT = "yyyy-MM-dd HH:mm:ssZ"
val ts = "2020-02-05 15:12:01-0800"
val date = df.parse(ts)

val Cal =Calendar.getInstance()
Cal.set (Calendar.DAY_OF_WEEK, Calendar.SATURDAY)
Cal.setTime(date)

val LastDayOfWeek=DATE_FORMAT.format (Cal.getTime ())

但是它返回“2020-02-05 15:12:01-0800”

SimpleDate 相当陈旧和过时。这是当前 java.time.LocalDate 库的解决方案。

import java.time.{LocalDate,DayOfWeek}

val ts = "2020-02-05 15:12:01-0800"
val ld = LocalDate.parse(ts take 10)
val saturday = ld.plusDays(DayOfWeek.SATURDAY.getValue()
                           - ld.getDayOfWeek().getValue())
//saturday: java.time.LocalDate = 2020-02-08

请注意,如果 ts 日期是星期日,则 saturday 将是前一天。