所以我将科特林的当前日期作为日期:
val calendar = Calendar.getInstance()
calendar.add(Calendar.DAY_OF_YEAR, -daysAgo)
我将其作为文本存储在标签上:time = calendar.time.toString()
接下来,我想从标签文字中减去2天:
val date = LocalDate.parse(time)
val cal = Calendar.getInstance()
cal.time = java.sql.Date.valueOf(date.toString())
cal.add(Calendar.DAY_OF_YEAR, -daysAgo)
方法在此行之后抛出“ java.time.format.DateTimeParseException”异常:LocalDate.parse(time)有什么想法吗?
答案 0 :(得分:2)
我将使用从JDK 8开始可用的新时间API,该API可在java.time
中找到。您还应该就所使用的格式达成共识:
val format = DateTimeFormatter.ISO_DATE_TIME
val current = LocalDateTime.now()
val currentAsText = current.format(format)
println(currentAsText) // e.g. 2019-02-27T12:00:00.000
val fromText = LocalDateTime.parse(currentAsText, format)
val twoDaysAgo = fromText.minusDays(2)
println(twoDaysAgo) // 2019-02-27T12:00:00.000
答案 1 :(得分:1)
来自Date类:
公共字符串toString()
将此Date对象转换为以下形式的字符串:
陶氏周一dd hh:mm:ss zzz yyyy
这将导致以下格式:
Fri Feb 22 11:45:35 EET 2019
您需要ZonedDateTime来解析这种格式,如下所示:
val date = ZonedDateTime
.parse(time, DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH))
.toLocalDate()