Java 프로그래밍에서 날짜와 시간을 다루는 일은 흔하지만, 가끔은 복잡할 수 있습니다. 특히 문자열(String)과 날짜/시간(LocalDateTime) 간의 변환은 매우 중요한 작업 중 하나입니다. 이 글에서는 Java에서 String을 LocalDateTime으로, 그리고 LocalDateTime을 String으로 변환하는 방법에 대해 자세히 설명하겠습니다.
LocalDateTime이란?
LocalDateTime 클래스는 Java 8에서 도입된 새로운 날짜 및 시간 API의 일부로, 날짜와 시간을 모두 표현할 수 있습니다. 이 클래스는 시간대 정보를 포함하지 않으므로, 순수한 날짜와 시간만 필요할 때 사용됩니다.
주요 메소드 및 사용법
LocalDateTime 클래스는 다양한 메소드를 제공하여 날짜와 시간을 조작할 수 있습니다. 예를 들어, now() 메소드는 현재 날짜와 시간을 반환하고, of() 메소드는 특정 날짜와 시간을 설정할 수 있게 합니다.
LocalDateTime now = LocalDateTime.now();
LocalDateTime specificDateTime = LocalDateTime.of(2023, Month.JUNE, 16, 12, 30);
String을 LocalDateTime으로 변환
문자열을 LocalDateTime으로 변환하려면 DateTimeFormatter를 사용해야 합니다. DateTimeFormatter는 날짜 및 시간 문자열을 파싱하여 LocalDateTime 객체로 변환하는 역할을 합니다.
String dateTimeString = "2023-06-16T12:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(dateTimeString, formatter);
LocalDateTime을 String으로 변환
LocalDateTime 객체를 문자열로 변환하려면, 다시 DateTimeFormatter를 사용해야 합니다. 이 때, format() 메소드를 이용하여 원하는 형식의 문자열로 변환할 수 있습니다.
LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = dateTime.format(formatter);
(참고)
DateTimeFormatter 사용법
DateTimeFormatter란?
DateTimeFormatter는 Java의 java.time.format 패키지에 속하며, 날짜와 시간을 원하는 형식으로 파싱 및 포맷팅하는 데 사용됩니다.
포맷 지정 방법
DateTimeFormatter를 사용할 때는 ofPattern() 메소드를 이용하여 포맷을 지정할 수 있습니다.
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
다양한 날짜 및 시간 포맷
표준 포맷
Java는 ISO-8601 표준을 따르는 여러 가지 기본 포맷을 제공합니다.
DateTimeFormatter isoFormatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
사용자 정의 포맷
사용자가 원하는 대로 포맷을 정의할 수도 있습니다.
DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm")
'JAVA' 카테고리의 다른 글
JDK Dynamic Proxy vs CGLIB Proxy (0) | 2024.11.12 |
---|---|
JVM Stack & Heap (2) | 2024.10.14 |
JVM의 Garbage Collector 정리 (0) | 2024.09.24 |
JPA와 JDBC (0) | 2024.08.26 |
Java에서 Array와 List를 섞는 방법 (Shuffle) (0) | 2024.07.25 |