IT 개발

[Java] 날짜, 시간 함수 알아보기 - Date, Calendar

썬프로 2023. 1. 11. 19:19
반응형

2023.01.11 상품권 등록 시 유효성 체크 서비스를 개발하던 중, 시간 관련 함수를 사용해야 하는데 문법이 정확히 기억이 나지 않았다. 역시 구글링을 통해 빠르게 해결하였고, 공부한 부분을 잊지 않기 위해 정리해보려 한다.

1. Date, Calendar

- Date, Calendar 객체 생성

// Date 객체 생성
Date date = new Date();

// 사용불가, Calendar 는 추상 클래스로 new를 이용한 객체 생성이 불가
Calendar cal = new Calendar();

// Calendar class를 구현한 class의 객체를 반환
Calendar cal = Calendar.getInstance();

 

- Date <-> Calendar 전환

// Date를 Calendar로 전환
cal.setTime(new Date());

// Calendar를 Date로 전환
long caltime = cal.getTimeInMillis();
date = new Date(caltime);

 

- Calendar 년, 월, 일, 시간, 분, 초 더하고 빼기

cal.add(Calendar.YEAR, 1) // 1년 더하기
cal.add(Calendar.MONTH, -1) // 1달 빼기
cal.add(Calendar.DAY, 3) // 3일 더하기
cal.add(Calendar.HOUR_OF_DAY, 4) // 4시간 더하기
cal.add(Calendar.MINUTE, 20) // 20분 더하기
cal.add(Calendar.SECOND, -30) // 30초 빼기

 

- Date 날짜 비교

Date date2 = new Date();

// comareTo의 값이 1이면 date > date2, 0이면 date = date2, -1이면 date < date2
date.compareTo(date2);

// 이전 날짜인지 비교
date.before(date2);

// 이후 날짜인지 비교
date.after(date2)

 

- 문자열 타입을 Date 타입으로 전환

// 날짜 데이터 포맷을 지정하는 객체, yyyyMMddHHmmSS 형태로 지정, 각 년`월`일`시간`분`초 의미
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmSS");

String strDate = "20230111191035";

// String -> Date
Date date = formatter.parse(strDate);

 

반응형