Java에서 `Date` 클래스는 날짜와 시간을 나타내는 데 사용됩니다. 그러나 Java 8 이전에는 많은 문제가 있어서 Java 8에서는 새로운 날짜 및 시간 API인 `java.time` 패키지가 소개되었습니다. `Date` 클래스는 이제는 오래되었으며, 대부분의 경우에는 `java.time` 패키지를 사용하는 것이 좋습니다. 하지만 `Date` 클래스에 대해 아직 알아두어야 할 중요한 내용이 있습니다.
Date 클래스의 주요 특징
- 날짜 및 시간 표현 : `Date` 클래스는 특정 시점을 나타냅니다. 이 시점은 해당 객체가 생성된 시점을 기준으로 합니다. 날짜와 시간을 동시에 포함합니다.
- Mutable(가변 ): `Date` 클래스는 가변 객체이므로 한 번 생성된 후에는 변경될 수 있습니다. 이로 인해 다중 스레드 환경에서 안전하지 않을 수 있습니다.
- Deprecated 메서드들 : `Date` 클래스에는 `getYear()`, `getMonth()`, `getDay()`와 같은 메서드들이 있지만, 이들은 Java 1.1부터 deprecated되었습니다. 대신, `Calendar` 클래스를 사용하는 것이 권장됩니다.
- 약한 정확도 : `Date` 클래스는 밀리초까지만 정확한 값을 표현합니다. 즉, 초 단위까지만 정확하게 나타냅니다. 밀리초 이하는 반올림됩니다.
- 주요 메서드
- `getTime()` : 이 메서드는 1970년 1월 1일 00:00:00 GMT를 기준으로 한 밀리초 단위의 시간을 반환합니다.
- `setTime(long time)` : `Date` 객체의 시간을 설정합니다.
- `toString()` : 날짜와 시간을 사람이 읽을 수 있는 형태로 문자열로 반환합니다.
예시
import java.util.Date;
public class Main {
public static void main(String[] args) {
Date now = new Date();
System.out.println("현재 날짜 및 시간: " + now);
long currentTime = now.getTime();
System.out.println("현재 시간 (밀리초): " + currentTime);
now.setTime(currentTime + 1000); // 1초 뒤로 설정
System.out.println("1초 뒤의 날짜 및 시간: " + now);
}
}
위의 예시는 `Date` 객체를 생성하고 현재 시간을 출력한 다음, 시간을 1초 뒤로 설정하여 다시 출력하는 간단한 예제입니다.
Java에서는 `Date` 클래스 대신 `java.time` 패키지의 클래스들을 사용하는 것이 좋습니다. 예를 들어 `Instant`, `LocalDateTime`, `ZonedDateTime` 등을 사용할 수 있습니다. 이러한 클래스들은 더욱 정확하고 강력하며, 다중 스레드 환경에서 안전합니다.
'JAVA > 기초' 카테고리의 다른 글
[JAVA] 가변인수(VarArgs) (0) | 2024.02.20 |
---|---|
[JAVA] BigDecimal 클래스 (0) | 2024.02.20 |
[JAVA] Wrapper 클래스의 auto boxing (1) | 2024.02.19 |
자바 상수 (0) | 2022.05.30 |
자바의 변수 (0) | 2022.05.30 |