JAVA
자바 8 이후 시간을 다루는 LocalDateTime 클래스와 DateTimeFormatter클래스
다오__
2023. 6. 4. 20:42
날짜와 시간을 알려주고 그것을 원하는데로 볼 수 있게 하는 format형식이다.
java 8이전에는 Date클래스와 SimpleDateFormat클래스가 담당했지만
java 8이후에는 더 이상 사용되지 않는다고 한다.
java.time 패키지의 LocalDateTime클래스, LocalDate, LocalTime등 더욱 강력한 기능을 가진 인터페이스들이 있다.
예를들어 LocalDateTime클래스와 DateTimeFormatter를 함계 사용하여 날짜와 시간을 포멧팅하고 파싱하는 예시를 보자
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
// 원하는 형식으로 날짜와 시간을 포맷팅
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = dateTime.format(formatter);
System.out.println("포맷팅된 날짜와 시간: " + formattedDateTime);
// 문자열을 날짜와 시간으로 파싱
String dateTimeString = "2023-06-04 15:30:00";
LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, formatter);
System.out.println("파싱된 날짜와 시간: " + parsedDateTime);
}
}
날짜와 시간 연도 시분초를 현재로 하여 포멧에 맞게끔 출력하는 기능 뿐만 아니라.
문자열을 원하는 포멧으로 출력할 수도 있다.
- LocalDateTime클래스는 날짜와 시간정보 모두를 포함하는 클래스이다.
- 연도, 월, 일, 시, 분, 초까지의 정보를 가지고 있다.
- LocalDateTime 인스턴스는 변경 불가능한 객체이다.
- 일시적인 사건이나 타임스탬프를 나타내는데 사용된다.
- 예시 : 2023 6월 4일 15시 30분 0초
LocalDateTime의 자주 사용하는 메서드
- now() : 현재 날짜와 시간을 나타내는 인스턴스를 반환
- of(int year, int month, int dayOfMonth, int hour, int minute) : 주어진 데이터로부터 인스턴스를 반환
- getYear(),
- getMonth(),
- getDayOfMonth()등 : 해당 필드의 값을 읽어온다.
- plusYears(long years),
- plusMonths(long months),
- plusSeconds(long seconds)등 : 주어진 시간단위를 기준으로 시간을 더한다. 예를들어 plusDays(5)는 현재 날짜와 시간에 5일을 더한 값을 반환한다.
- minusYears(long years)
- minusMonths(long months),
- minusSeconds(long seconds)등 : 주어진 시간단위를 기준으로 시간을 뺀다.
- format(DateTimeFormatter formatter) : 지정된 형식으로 LocalDateTime인스턴스를 포맷팅한 문자열을 반환한다. DateTimeFormatter를 사용해 원하는 형식으로 날짜와 시간을 표현할 수 있다.
- isBefore(LocalDateTime other) : 현재 LocalDateTime인스턴스가 주어진 인스턴스보다 이전인지를 확인한다.
- isAfter(LocalDateTime other) : 현재 LocalDateTime인스턴스가 주어진 인스턴스보다 이후인지를 확인한다.
DateTimeFormatter에서 주로 사용하는 메서드
- ofPattern(String pattern) : 주어진 패턴을 사용하여 DateTimeFormatter 인스턴스를 생성한다. 패턴은 날짜와 시간을 원하는 형식으로 표현하는데 사용된다. 예를들어, yyyy-MM-dd HH:mm:ss와 같은 패턴을 지정할 수 있다.
- format(TemporalAccessor temporal) : 주어진 TemporalAccessor 인스턴스 (예: LocalDateTime)를 지정된 형식의 문자열로 포맷팅 한다. 포맷팅된 문자열을 반환한다.
- parse(CharSequence text) : 주어진 문자열을 해석하여 TemporalAccessor 인스턴스로 파싱한다. 파싱된 결과로 LocalDateTime등의 인스턴스를 얻을 수 있다.