Java에서 오늘 날짜를 구하기 위한 코드입니다. 집계 서비스를 만들기 위해 사용한 코드인데요.
GregorianCalendar today = new GregorianCalendar(); int Year = today.get(Calendar.YEAR); int Month = today.get(Calendar.MONTH); int Date = today.get(Calendar.DATE); int Hour = today.get(Calendar.HOUR_OF_DAY);
GregorianCalendar 클래스를 생성할 때 파라메터를 주지 않으면 오늘 날짜에 대한 객체가 생성됩니다. 주의할 점은 GregorianCalendar의 1월을 0부터 시작하므로, 필요시에 월의 값에 1을 더해줘야 합니다.
참고로 get 매서드에서 사용할 수 있는, 각 시간의 단위를 얻기 위해서 사용할 수 있는 값은 다음과 같습니다.
- Calendar.YEAR – 년도
- Calendar.MONTH – 월(0~11)
- Calendar.DATE – 일
- Calendar.AP_PM – 오전/오후
- Calendar.HOUR – 시
- Calendar.MINUTE – 분
- Calendar.SECODE – 초
이제 여기서 한단계 더 나아가.. 어제는? 한달전은? 일주일전은? 어떻게 알 수 있을까.. 아래의 코드는 위의 today를 기준으로 1일 전을 나타내는 코드입니다.
today.add(Calendar.DAY_OF_MONTH, -1);
위의 코드를 이용하면 특정 날짜를 기준으로 원하는 날짜를 정확하게 파악할 수 있을 것입니다. GregorianCalendar 에서 기본적으로 사용하는 TimeZone은 OS에서 설정된 나라로 지정됩니다. 이 TimeZone은 setTimeZone 매서드를 통해 재변경이 가능합니다. 아래의 코드는 Europe/London에 대한 TimeZone으로 변경하는 코드 예입니다.
TimeZone timeZone = TimeZone.getTimeZone("Europe/London"); today.setTimeZone(timeZone);
끝으로 GregorianCalendar 객체의 시간을 다양하게 표현하기 위해 SimpleDateFormat 클래스를 사용할 수도 있습니다. 아래의 코드는 SimpleDateFormat 클래스르 사용해 원하는 형식으로 시간을 표현하는 코드 예입니다.
GregorianCalendar today = new GregorianCalendar(); SimpleDateFormat format = new SimpleDateFormat("yyyy년 MM월 dd일 aa hh시 mm분 ss초"); String strTime = format.format(today.getTime());