以字符串形式从日期中减去天数

Subtract days from a date in the form of a string

我有一个字符串形式的日期,如下所示

"2017 年 8 月 8 日 11:43"

我试图从上面的日期字符串中减去一天,所以最终输出将是 "07/08/2017 11:43"

我用下面的代码试过了

   val x = "18/8/2017 11:43"
   val formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm");
   val dt = formatter.parseDateTime(x);
   println(dt.minusDays(1))

但是,我得到的输出是 2017-08-17T11:43:00.000-07:00

有更好的方法吗?

您需要格式化程序来对输出进行解析和格式化。

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

val x = "18/8/2017 11:43"
val formatter = DateTimeFormatter.ofPattern("d/M/yyyy HH:mm")

val dt = LocalDateTime.parse(x, formatter)
val res = dt.minusDays(1).format(formatter)  //res: String = 17/8/2017 11:43