Как преобразовать строку yyyy-MM-ssThh-mm-ss в LocalDataTime yyyy-MM-ss чч-мм-сс? - PullRequest
0 голосов
/ 24 января 2020

Как и в заголовке у меня есть вопрос. Мне нужно проанализировать 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: мм: сс

Итак, мой вопрос, как удалить эту букву "T" из LocalDataTime, если парсер не работает должным образом?

Ответы [ 2 ]

3 голосов
/ 24 января 2020

Вы путаете между parse и format методом.

  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);
    
0 голосов
/ 24 января 2020

LocalDateTime (Java Platform SE 8) Эта функция

LocalDateTime.parse(CharSequence text, DateTimeFormatter formatter);

принимает строку с форматированием в шаблоне, определенном 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);
...