Lang/Java

LocalDateTime 밀리세컨드 format 동적으로 처리방법

hamaganatanadda 2023. 11. 19. 19:53

appendFraction(ChronoField.MICRO_OF_SECOND, 0, 6, true)

max는 최대 9까지

DateTimeFormatter f = new DateTimeFormatterBuilder()
	                                .appendPattern("yyyy-MM-dd HH:mm:ss")
	                                .appendFraction(ChronoField.MICRO_OF_SECOND, 0, 6, true)
	                                .toFormatter();
	    
LocalDateTime ldt1 = LocalDateTime.parse("2023-11-19 12:34:56.123", f);
LocalDateTime ldt2 = LocalDateTime.parse("2023-11-19 12:34:56.1234", f);
LocalDateTime ldt3 = LocalDateTime.parse("2023-11-19 12:34:56.12345", f);
LocalDateTime ldt4 = LocalDateTime.parse("2023-11-19 12:34:56.123456", f);
System.out.println(ldt1.format(f));
System.out.println(ldt2.format(f));
System.out.println(ldt3.format(f));
System.out.println(ldt4.format(f));

2023-11-19T12:34:56.123
2023-11-19T12:34:56.123400
2023-11-19T12:34:56.123450
2023-11-19T12:34:56.123456
2023-11-19 12:34:56.123
2023-11-19 12:34:56.1234
2023-11-19 12:34:56.12345
2023-11-19 12:34:56.123456

 

decimalPoint 예제

false일 경우 소수점 X

DateTimeFormatter f1 = new DateTimeFormatterBuilder()
                            .appendPattern("yyyy-MM-dd HH:mm:ss")
                            .appendFraction(ChronoField.MICRO_OF_SECOND, 0, 6, true)
                            .toFormatter();

LocalDateTime ldt1 = LocalDateTime.parse("2023-11-19 12:34:56.123", f1);
System.out.println(ldt1.format(f1));
-> 2023-11-19 12:34:56.123


DateTimeFormatter f2 = new DateTimeFormatterBuilder()
                            .appendPattern("yyyy-MM-dd HH:mm:ss")
                            .appendFraction(ChronoField.MICRO_OF_SECOND, 0, 6, false)
                            .toFormatter();

LocalDateTime ldt2 = LocalDateTime.parse("2023-11-19 12:34:56123", f2);
System.out.println(ldt2.format(f2));
-> 2023-11-19 12:34:56123