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

问题描述 投票:0回答:1

我有一个日期字符串

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"

scala date simpledateformat
1个回答
2
投票

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 将在前一天。

© www.soinside.com 2019 - 2024. All rights reserved.