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 |