반응형
Java 개발을 하다 보면 날짜와 시간 관련해서 다루는 경우가 많습니다.
많이 사용되는 Date에 대해서 알아보겠습니다.
기본예시
Date() : 현재 날짜와 시간을 기준으로 Date 객체를 만듭니다.
Date now = new Date();
System.out.println(now); // "Tue Jul 16 20:08:01 KST 2024"
Date(long date) : 주어진 밀리초 값을 이용하여 Date 객체를 만듭니다.
long time = 1721128135502L;
Date date = new Date(time);
System.out.println(date); // "Tue Jul 16 20:08:55 KST 2024"
주요 메서드 활용예시
getTime() : Date 객체의 시간 값을 밀리초로 돌려줍니다.
Date now = new Date();
long currentTimeMillis = now.getTime();
System.out.println(currentTimeMillis); // "1721128186699"
setTime() : Date 객체의 시간 값을 지정된 밀리초 값으로 설정합니다.
Date now = new Date();
now.setTime(1721128186699L);
System.out.println(now); // "Tue Jul 16 20:09:46 KST 2024"
before(Date date) : 현재 날짜가 지정된 날짜보다 앞서면 `true`를 반환합니다.
Date date1 = new Date(1721128186699L);
Date date2 = new Date(1721128206699L);
System.out.println(date1.before(date2)); // "true"
after(Date date) : 현재 날짜가 지정된 날짜보다 늦으면 `true`를 반환합니다.
Date date1 = new Date(1721128186699L);
Date date2 = new Date(1721128206699L);
System.out.println(date1.after(date2)); // "false"
compareTo(Date date) : 현재 날짜와 지정된 날짜를 비교합니다.
Date date1 = new Date(1721128186699L);
Date date2 = new Date(1721128206699L);
System.out.println(date1.compareTo(date2)); // "-1"
toString() : Date 객체를 문자열 형태로 변환합니다.
Date now = new Date();
System.out.println(now.toString()); // "Tue Jul 16 20:12:04 KST 2024"
단점
1. 타입 안정성 부족 : Date 클래스는 날짜와 시간을 분리하여 개별적으로 처리할 수 있는 기능을 제공하지 않습니다.
2. 불변성 결여 : Date 객체는 변경 가능한(mutable) 객체이며, 생성 후에 값이 변경될 수 있어 멀티스레드 환경에서 안전하지 않습니다.
3. 국제화 문제 : Date 클래스는 시간대(time zone)나 지역(locale)에 따라 날짜와 시간을 다루는 기능이 제한적입니다.
4. 복잡한 API : 날짜와 시간을 다루기 위한 API는 사용자가 쉽게 이해하고 활용하기 어렵습니다.
반응형
'Java' 카테고리의 다른 글
Java SimpleDateFormat 패턴 날짜 포맷 (0) | 2024.07.17 |
---|---|
Java split 문자열 자르기 분할 (0) | 2024.07.16 |
Java substring 문자열 자르기 (0) | 2024.07.15 |
Java는 무엇인가(특징 및 장단점) (0) | 2024.07.14 |