JAVA/포스팅

자바 Date

짜집퍼박사(짜박) 2023. 11. 16. 12:57

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