import java.util.Locale;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;

public class TestDate 
{
 public static void main(String args[]) 
 {
  int     iWeekName;
  int     nMoveDay;
  int     nEndDay;
  long     lCurTime;
  long    lCurTimeTemp;
  long    lDiff;
  Date     curDate;
  Date     curDateTemp;
  String     strCurTime;
  Calendar    cal;
  GregorianCalendar  gcal;
  SimpleDateFormat  sdf;
  
  // ---------------------------------------------------------------
  // 1. 시스템의 밀리초 구하기(1000은 1초)
  // ---------------------------------------------------------------
  lCurTime = System.currentTimeMillis();
  System.out.println(lCurTime);
  
  // ---------------------------------------------------------------
  // 2. 현재 시각을 가져오기
  // ---------------------------------------------------------------
  curDate = new Date();  
  System.out.println(curDate);

 

  // ---------------------------------------------------------------
  // 3. 포맷을 지정해서 날짜 구하기
  // ---------------------------------------------------------------
  sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.0Z'", Locale.KOREA); 
  curDate = new Date();                                 
  strCurTime = sdf.format(curDate);
  System.out.println(strCurTime);

                                    

  // ---------------------------------------------------------------
  // 4. Date를 Calendar로 맵핑하기
  // ---------------------------------------------------------------
  curDate = new Date();
  cal = Calendar.getInstance();
  cal.setTime(curDate);
  System.out.println(cal.get(Calendar.YEAR) + "년" 
      + (cal.get(Calendar.MONTH) + 1) + "월"
      +  cal.get(Calendar.DAY_OF_MONTH) +"일");
  
  // ---------------------------------------------------------------
  // 5-1. 날짜를 n일 만큼 이동시키기
  // ---------------------------------------------------------------
  curDate = new Date();
  lCurTime = curDate.getTime();
  nMoveDay = 1;
  lCurTime = lCurTime + (24*60*60*1000) * nMoveDay;
  System.out.println(lCurTime);
  
  // ---------------------------------------------------------------
  // 5-2. 날짜를 n일 만큼 이동시키기                           
  // ---------------------------------------------------------------
  cal = Calendar.getInstance ( );                                                              
  cal.add(cal.MONTH, -2);    // 2달 전         
  cal.add(cal.DAY_OF_MONTH, 2);  // 2일 후
  cal.add(Calendar.YEAR, 2);   // 2년 후
  System.out.println(cal.get(Calendar.YEAR) + "년" 
      + (cal.get(Calendar.MONTH) + 1) + "월"
      +  cal.get(Calendar.DAY_OF_MONTH) +"일");
  
  // ---------------------------------------------------------------
  // 6-1. 해당하는 달의 마지막 일 구하기
  // ---------------------------------------------------------------
  gcal = new GregorianCalendar();
  nEndDay = gcal.getActualMaximum((gcal.DAY_OF_MONTH));             
  System.out.println(nEndDay);

 

  // ---------------------------------------------------------------
  // 6-2. 해당하는 달의 마지막 일 구하기
  // ---------------------------------------------------------------
  cal = Calendar.getInstance ( );            
  cal.set(2009, 1, 1);    //월은 0부터 시작
  nEndDay = cal.getActualMaximum(Calendar.DATE);
  System.out.println(nEndDay);
  
  // ---------------------------------------------------------------
  // 7. 요일 구하기                                              
  // ---------------------------------------------------------------
  cal= Calendar.getInstance ( );                    
  iWeekName = cal.get(Calendar.DAY_OF_WEEK); // 1이면 일요일, 2이면 월요일... 7이면 토요일        
  
  // ---------------------------------------------------------------
  // 8. 날짜 유효 검사
  // ---------------------------------------------------------------
  //String result = "";                                         
  sdf = new SimpleDateFormat("yyyyMMdd", Locale.KOREA);                                                 
  // 일자, 시각해석을 엄밀하게 실시할지 설정함  true일 경우는 엄밀하지 않는 해석, 디폴트       
  sdf.setLenient (false);                                           
  try {                                            
   curDate = sdf.parse("20090229"); 
  }
  catch(java.text.ParseException e) {             
   System.out.println("Error");
  }
  
  // ---------------------------------------------------------------
  // 9. 두 날짜 비교하기                                 
  // ---------------------------------------------------------------
  curDate = new Date();
  curDateTemp = new Date();

  lCurTime = curDate.getTime();                     
  lCurTimeTemp = curDateTemp.getTime();                     
                                                     
  lDiff = lCurTimeTemp - lCurTime;
  cal= Calendar.getInstance();          
  cal.setTimeInMillis(lDiff);   // 결과값이 몇시간, 몇일 차이나는지 확인하기 위해선.
 }
}

'자바 > 자바팁' 카테고리의 다른 글

객체직렬화 설명  (0) 2010.10.29
objectinputstream 생성시 주의사항  (0) 2010.10.28
클래스패스 설정  (0) 2010.10.25
Borderlayout 기본설명  (0) 2010.10.21
에코 클라이언트 과정  (0) 2010.10.21

+ Recent posts