반응형
자바 연월일 더하고 빼는 방법
SimpleDateFormat을 통해 포맷을 변환시켜주고, Calendar 객체의 add 메서드를 사용해서 원하는 날짜를 계산할 수 있습니다.
더한 날짜의 경우 그냥 숫자를 사용하면 되고 이전 날짜를 구하는 경우에는 숫자에 -를 붙여서 넣으면 됩니다.
package com.example.demo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateCalculation {
private static String CalculationDate(String sttDate, int year, int month , int day) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();
Date date = sdf.parse(sttDate);
cal.setTime(date);
cal.add(Calendar.YEAR, year);
cal.add(Calendar.MONTH, month);
cal.add(Calendar.DATE, day);
return sdf.format(cal.getTime());
}
public static void main(String[] args) throws Exception{
String date = "20220217";
// 1년 후 날짜 구하기
String addYear = CalculationDate(date, 1, 0, 0);
// 1년 전 날짜 구하기
String minusYear = CalculationDate(date, -1, 0, 0);
// 1달 후 날짜 구하기
String addMonth = CalculationDate(date, 0, 1, 0);
// 1달 전 날짜 구하기
String minusMonth = CalculationDate(date, 0, -1, 0);
// 1일 후 날짜
String addDay = CalculationDate(date, 0, 0, 1);
// 1일 전 날짜
String minusDay = CalculationDate(date, 0, 0, -1);
System.out.println("1년 후 날짜 구하기: " + addYear);
System.out.println("1년 전 날짜 구하기: " + minusYear);
System.out.println("1달 후 날짜 구하기: " + addMonth);
System.out.println("1달 전 날짜 구하기: " + minusMonth);
System.out.println("1일 후 날짜 구하기: " + addDay);
System.out.println("1일 전 날짜 구하기: " + minusDay);
}
}
▼계산 결과
SimpleDateFormat 사용 시 주의점
SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMDD"); 이렇게 선언해서 사용을 하니 시간 계산이 이상하게 나왔습니다.
표기는 "yyyyMMdd"를 사용해야 됩니다.
그리고 추가로 검색해보니 주의할 점을 정리해보겠습니다.
문자 | 의미 | 비고 |
yyyy | 연도 | 소문자 사용 |
MM | 달 | 소문자 사용 시 분 출력 |
dd | 일(해당 월 기준) | 일반적인 일 출력 |
DD | 일(해당 년도 기준) | 많은 수 출력 |
a | am/pm(오전/오후) | 소문자 사용 |
H | 시(24시간 기준) | |
h | 시(24시간 기준) | |
mm | 분 | 대문자 사용 시 월이 출력 |
s | 초 | |
S | 밀리초(milisecond) | 1/1000초 기준 |
반응형
'프로그래밍 > 자바(Java)' 카테고리의 다른 글
[Java] 문자열 자르기 split() 사용방법 (0) | 2022.07.26 |
---|---|
[Java] 자바 세션 사용방법 및 아이디 값 가져오기 (1) | 2022.07.23 |
[Java] 자바 static 정적 변수와 메소드 (0) | 2021.06.09 |
[Java] 자바 ArrayList 추가 및 삭제 (0) | 2021.05.25 |
[Java] 자바 배열 알아보기 (0) | 2021.05.25 |
댓글