java.util.Date 클래스는 Java에서 날짜와 시간을 나타내는 클래스 중 하나입니다. 그러나 이 클래스는 Java 1.1 이후에 새로운 날짜 및 시간 API (java.time 패키지)가 도입되면서 더 이상 권장되지 않습니다. Java 1.1 이전에는 Date 클래스가 주요한 날짜 및 시간 관련 기능을 제공했습니다.
java.util.Date 클래스의 주요 메서드와 특징
1. 객체 생성
// 현재 날짜와 시간을 가진 Date 객체 생성
Date currentDate = new Date();
2. 시간 정보 얻기 및 설정
long timestamp = currentDate.getTime(); // 1970년 1월 1일 00:00:00(UTC)부터 현재까지의 밀리초로 반환
currentDate.setTime(timestamp); // 특정 타임스탬프로 날짜와 시간 설정
3. 날짜 비교
Date otherDate = new Date();
boolean isEqual = currentDate.equals(otherDate);
int compareResult = currentDate.compareTo(otherDate);
4. 날짜 출력
System.out.println(currentDate); // Date의 toString() 메서드는 현재 날짜와 시간을 문자열로 반환
5. java.util.Date의 한계
- 불변성이 없음: Date 객체는 가변적이며 변경 가능합니다.
- 멀티쓰레딩에서의 안전성이 없음: Date 객체는 스레드 세이프하지 않습니다.
- 년도 1900, 월은 0부터 시작 등 이상한 API: 월은 0부터 시작하는 것과, 년도가 1900을 기준으로 한 것과 같은 낡은 API 설계가 있습니다.
따라서 Java 1.1 이후에는 java.time 패키지에서 제공하는 LocalDate, LocalTime, LocalDateTime 등을 사용하는 것이 좋습니다. 이 API는 불변성, 스레드 세이프, 풍부한 연산 등의 장점을 가지고 있습니다.
예를 들면
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeExample {
public static void main(String[] args) {
// 현재 날짜와 시간을 가진 LocalDateTime 객체 생성
LocalDateTime currentDateTime = LocalDateTime.now();
// 날짜와 시간을 특정 포맷의 문자열로 출력
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = currentDateTime.format(formatter);
System.out.println(formattedDateTime);
}
}
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 DecimalFormat (0) | 2023.11.16 |
---|---|
자바 형식화 클래스 (0) | 2023.11.16 |
자바 Calendar (0) | 2023.11.16 |
자바 날짜와 시간 (0) | 2023.11.16 |
자바 java.math.BigDecimal클래스 (0) | 2023.11.16 |