怎么把String yyyy-MM-ssThh-mm-ss转换成LocalDataTime yyyy-MM-ss hh-mm-ss?

时间:2020-01-23 23:17:33

标签: java spring string spring-boot type-conversion

就像标题一样,我有一个问题。我需要将LocalDataTime yyyy-MM-ssThh-mm-ss解析为LocalDataTime yyyy-MM-ss hh-mm-ss,但是当我这样做

String beforeConversionStartDate = "2020-01-24T00:06:56";
 private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDataTime parsedDate = LocalDateTime.parse(beforeConversionStartDate,formatter);

然后我的输出仍然是yyyy-MM-ddTHH:mm:ss

所以我的问题是,如果解析器无法正常工作,如何从LocalDataTime中删除此“ T”?

2 个答案:

答案 0 :(得分:3)

您在parseformat方法之间感到困惑。

  1. 首先,您要parse输入LocalDateTime实例
  2. 然后,根据您的格式化程序format实例

    String beforeConversionStartDate = "2020-01-24T00:06:56";
    LocalDateTime parsedDate = LocalDateTime.parse(beforeConversionStartDate);
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String formattedDate = parsedDate.format(formatter);
    

答案 1 :(得分:0)

LocalDateTime (Java Platform SE 8 ) 此功能

LocalDateTime.parse(CharSequence text, DateTimeFormatter formatter);

采用格式化程序定义的模式格式化的字符串,并返回LocalDateTime对象,但是返回的对象不知道使用了哪种格式化程序。 因此,您必须在获得解析的字符串后对其进行格式化:

    String str = "1986-04-08 12:30";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
    LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
    String newDateTime = formatter.format(dateTime);