Как распарсить такой формат времени 13.05.15.25? [JAVA]

Как распарсить такой формат времени ? И создать дату

13 - день месяца, 5 - месяц, 15.00 - время = 15:00


Ответы (1 шт):

Автор решения: XelaNimed

Вместе с предложением Сергея получается такое решение:

import java.time.format.DateTimeFormatter;
import java.time.LocalDateTime;
import java.time.Year;
import java.time.temporal.ChronoField;
import java.time.format.DateTimeFormatterBuilder;

public class MyClass
{
    public static void main(String args[])
    {
        String strDate = "13.05.15.25";
        String srcFormat = "dd.MM.HH.mm";
        String trgFormat = "yyyy.MM.dd HH:mm:ss";
        
        DateTimeFormatter srcFormatter = new DateTimeFormatterBuilder()
            .parseDefaulting(ChronoField.YEAR, Year.now().getValue())
            .appendPattern(srcFormat)
            .toFormatter();
        DateTimeFormatter trgFormatter = DateTimeFormatter.ofPattern( trgFormat );
        LocalDateTime localDateTime = LocalDateTime.parse( strDate , srcFormatter );
        
        System.out.println("strDate = " + strDate);
        System.out.println("localDateTime = " + localDateTime);
        System.out.println("localDateTime.format(DateTimeFormatter.ISO_DATE_TIME) = " + localDateTime.format(DateTimeFormatter.ISO_DATE_TIME));
        System.out.println("localDateTime.format(trgFormatter) = " + localDateTime.format(trgFormatter));
    }
}

Ссылки по теме:

Онлайн/интерактивная версия кода
DateTimeFormatter
LocalDateTime

→ Ссылка