자바의 기초문법

날짜와 시간 자바 클래스: Date, Calendar, GregorianCalendar

netyhobby 2015. 12. 21. 01:00
날짜와 시간  (p405 참조)


1. Date

import java.util.Date;
Date d = new Date(); // 현재 년월일 시분초

Date 예제1
(책에 없음. 예전방식이라 호환성 문제로 주의)
package basic_class;
import java.util.Date;
public class Date01 {
    public static void main(String[] args) {
    Date d = new Date(); // 현재 년월일 시분초
System.out.println(1900+d.getYear()+"년"); // Date는 1900 이후부터 카운트되므로 1900 붙여야 함
System.out.println(1+d.getMonth()+"월"); // 자바의 월은 0~11까지만 있으므로 1을 더해야 함
System.out.println(d.getDate()+"일");
System.out.println(d.getHours()+"시");
System.out.println(d.getMinutes()+"분");
System.out.println(d.getSeconds()+"초");
System.out.println("요일"+d.getDay()); 
}
}



Date 예제2. set 메소드
(책에 없음. 예전방식이라 호환성 문제로 주의)

package basic_class;
import java.util.Date;
public class Date02 {
public static void main(String[] args) {

Date d1 = new Date();
Date d2 = new Date();

d2.setYear(108); // 2008년
d2.setMonth(6); // 7월
d2.setDate(10); //10월

if(d1.after(d2)) {  // 날짜가 이전이냐 이후냐의 비교가 가능한 after/before 메소드
System.out.println("d1이 d2 이후의 날짜");
}
else{
System.out.println("d1이 d2 이후의 날짜가 아님");
}
}
}



---------------------------------------------------------------------------------------------------------------

2. Calendar

Calendar cal = Calendar.getInstance(); 

책에 나온 GregorianCaledar와 다소 다른 방식 (그레고리 외 윤년 차이 있음)
package basic_class;
import java.util.Calendar;
public class Calendar01 {

public static void main(String[] args) {
//GregorianCalendar cal = new GregorianCalendar();
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR); // get이라는 메소드로 바로 사용 가능
int month = cal.get(Calendar.MONTH);
int date = cal.get(Calendar.DATE);
System.out.println(year+"년");
System.out.println((month+1)+"월");
System.out.println(date+"일");

cal.set(Calendar.YEAR, 2014);
year = cal.get(Calendar.YEAR);
System.out.println("년도 변경 후"+year+"년");

}


---------------------------------------------------------------------------------------------------------------

3. GregorianCalendar

GregorianCalendar calendar = new GregorianCalendar();
(p407 참조)

calendar.setTimeZone(timeZone); // 다른 시간대의 날짜와 시간을 출력

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy년 MM월 dd일 aa hh시 mm분 ss초);
 // 날짜와 시간 포멧. 월은 대문자M, 소문자m은 분인 것에 주의

(p413 예제)
package basic_class;
import java.util.*;
import java.text.*; // SimpleDateFormat 클래스가 속하는 패키지

public class DateFormatExample1 {
public static void main(String[] args) {
GregorianCalendar calendar = new GregorianCalendar();
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy년 MM월 dd일 aa hh시 mm분 ss초");
String str = dateFormat.format(calendar.getTime());
System.out.println(str);
}
}

calendar.getTime()은 아래와 같다.
Date date = cal.getTime();
Strimg str = dateFormat.format(cal);