Java 년도 리스트 - Java nyeondo liseuteu

Date를 쓰면 보통 4개의 클래스를 import한다.


1. java.text.SimpleDateFormat : 날짜 형식 맞추기 위함
2. java.text.parseException : string에서 date 형식으로 바꿔 줄 때 parse를 쓰는데 exception 적용필요
3. java.util.Calendar : 날짜 더하고 빼고 위함
4. java.util.Date : 날짜 구하기 위함


🔸String에서 Date형식으로 변환 / Date에서 String 형식으로 변환

: String=> Date 
Date date = format.parse(sdate);

: Date => String
String sdate = format.

format(date);

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class test {
	public static void main(String[] args) throws ParseException {

		String sdate = "20210629";
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
		
		//string => date 
		Date date = format.parse(sdate);
		
		//date => string
		sdate = format.format(date);
		
		System.out.println("date형식:"+date);
		System.out.println("string형식:"+sdate);	
	}
}
Java 년도 리스트 - Java nyeondo liseuteu
출력값

🔸현재 날짜,시간 구하기

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class test {
	public static void main(String[] args) throws ParseException {
		Date now = new Date();
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");

		System.out.println("오늘 날짜 현재 시간(기본형식): "+now);
		System.out.println("지정한 형식: "+format.format(now));

	}
}
Java 년도 리스트 - Java nyeondo liseuteu
출력값

🔸현재 날짜 년,월,시간 구하기 (Calendar객체 사용)

import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;

public class test {
	public static void main(String[] args) throws ParseException {
		Date now = new Date();
		
		Calendar cal = Calendar.getInstance(); 
		cal.setTime(now);
		
		int year = cal.get(Calendar.YEAR);
		int month = cal.get(Calendar.MONTH) + 1; //0부터 시작하기 때문에 1더해준다
		int day = cal.get(Calendar.DAY_OF_MONTH);
		int hour = cal.get(Calendar.HOUR_OF_DAY);
		int min = cal.get(Calendar.MINUTE);
		int sec = cal.get(Calendar.SECOND);
		System.out.println(year + "년도 " + month + "월 " + day + "일 " + hour + "시 " + min + "분 " + sec + "초");
	}
}

🔸현재 날짜 년,월,시간  더하기 및 빼기 (Calendar객체 사용)

import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;

public class test {
	public static void main(String[] args) throws ParseException {
		Date now = new Date();

		Calendar cal = Calendar.getInstance(); 
		cal.setTime(now);
		
		cal.add(Calendar.YEAR, 1); //1년 더하기 
		cal.add(Calendar.MONTH, -3); //3개월 빼기
		cal.add(Calendar.DATE, 2); //2일 더하기
		cal.add(Calendar.HOUR_OF_DAY, -2); //2시간빼기
		cal.add(Calendar.MINUTE, 20); //20분 더하기
		cal.add(Calendar.SECOND, -10); //10초 빼기
	}
}

🔸날짜 비교방법 (compareTo사용)

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class test {
	public static void main(String[] args) throws ParseException {
		Date date1 = new Date();
		Date date2 = new Date();
		
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
		
		date1 = format.parse("20210629");
		date2 = format.parse("20110328");
		
		if(date1.compareTo(date2) > 0) {
			System.out.println("date1이 더 미래 날짜입니다.");
		}else if(date1.compareTo(date2) < 0) {
			System.out.println("date1이 더 과거 날짜입니다.");
		}else {
			System.out.println("같은 날짜입니다.");
		}
	}
}

SimpleDateFormat, Calendar 클래스를 이용하여 특정 날짜에서 더하거나 뺀 날짜를 구할 수 있다.

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

public class DateAdd {
	public static void main(String[] args) throws Exception{
    
		String date = "20200801";
        
		//1년 후 날짜
		String addYear  = AddDate(date, 1, 0, 0);
        
		//1달 후 날짜
		String addMonth = AddDate(date, 0, 1, 0);
        
		//1일 후 날짜
		String addDay   = AddDate(date, 0, 0, 1);
        
		System.out.println(addYear);  //20210801
		System.out.println(addMonth); //20200901
		System.out.println(addDay);   //20200802
	}
	private static String AddDate(String strDate, int year, int month, int day) throws Exception {
		
        SimpleDateFormat dtFormat = new SimpleDateFormat("yyyyMMdd");
        
		Calendar cal = Calendar.getInstance();
        
		Date dt = dtFormat.parse(strDate);
        
		cal.setTime(dt);
        
		cal.add(Calendar.YEAR,  year);
		cal.add(Calendar.MONTH, month);
		cal.add(Calendar.DATE,  day);
        
		return dtFormat.format(cal.getTime());
	}
}

위의 예제와 같이 Calendar 객체의 add() 메서드를 사용하면 원하는 날짜를 계산할 수 있다.

만약 특정일 기준으로 원하는 날짜만큼 빼려면 원하는 만큼의 년, 월, 일에 -(마이너스)를 붙여 add 메서드 파라미터에 세팅한다.

//year 년 전
cal.add(Calendar.YEAR,  -year);
//month 월 전
cal.add(Calendar.MONTH, -month);
//month 일 전
cal.add(Calendar.DATE,  -day);

어제 날짜 구하기(일 년 전, 한 달 전)

//위의 메소드에 적용하면 다음과 같이 파라메터를 세팅하면된다.
//일년 전
AddDate(date, -1, 0, 0);
//한달 전
AddDate(date, 0, -1, 0);
//하루 전
AddDate(date, 0, 0, -1);