我有一个日期字符串
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
将在前一天。