본문 바로가기

개발공부/JAVA

[JAVA] 날짜 관련 코드 모음집(날짜 더하기, 빼기, 변환, 형식..등등)

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);	
	}
}

출력값

🔸현재 날짜,시간 구하기

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));

	}
}

출력값

🔸현재 날짜 년,월,시간 구하기 (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("같은 날짜입니다.");
		}
	}
}