728x90
코딩을 할 때, 날짜를 계산해서 처리할 때가 종종 있다
자주 사용될 로직이라면
공통 메소드로 생성해서 사용하자
두 날짜 차이 계산
Date Class 를 이용하여 구현하기
SimpleDateFormat 클래스를 이용하여 String 문자를 Date 객체로 변환
밀리세컨드 단위로 시간을 나타내는 getTime 메소드로 시간을 변환한다.
ms/1000 : 초
ms/(60*1000) : 분
ms/(60*60*1000) : 시
ms/(24*60*60*1000) : 일
String a_date = "2022-03-19";
String b_date = "2022-02-10";
SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
Date a_parseDate = format.parse(a_date);
Date b_parseDate = format.parse(b_date);
// 밀리세컨드 단위로 차이 결과 도출
long resultTime = a_parseDate.getTime() - b_parseDate.getTime();
System.out.println("초 : "+resultTime / 1000);
System.out.println("분 : "+resultTime / (60*1000));
System.out.println("시 : "+resultTime / (60*60*1000));
System.out.println("일 : "+resultTime / (24*60*60*1000));
|
cs |
특정 날짜에 년,월,일,시,분,초 더하기
Calendar 클래스를 통해 내장 함수를 이용해 각 시간을 더할 수 있다
Calendar 클래스의 동일 메소드에 음수를 넣으면 년도에서 해당날짜를 뺄셈하게 된다
String a_date = "2022-01-01 09:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date a_parseDate = sdf.parse(a_date);
Calendar cal =Calendar.getInstance();
cal.setTime(a_parseDate);
cal.add(Calendar.DATE, 1);
System.out.println("일 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.MONTH, 1);
System.out.println("월 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.YEAR, 1);
System.out.println("년 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.HOUR_OF_DAY , 1);
System.out.println("시 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.MINUTE, 10);
System.out.println("분 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.SECOND, 10);
System.out.println("초 덧셈: "+sdf.format(cal.getTime()));
일 덧셈: 2022-01-02 09:00:00
월 덧셈: 2022-02-02 09:00:00
년 덧셈: 2023-02-02 09:00:00
시 덧셈: 2023-02-02 10:00:00
분 덧셈: 2023-02-02 10:10:00
초 덧셈: 2023-02-02 10:10:10
|
cs |
현재 시간 기준으로 년,월,일,시,분,초 더하기
DATE 객체를 생성하면 현재 시간을 구할 수 있다
해당 객체를 위와 동일하게 처리하면 된다
Calendar 클래스의 동일 메소드에 음수를 넣으면 년도에서 해당날짜를 뺄셈하게 된다
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date today = new Date();
Calendar cal =Calendar.getInstance();
cal.setTime(today);
cal.add(Calendar.DATE, 1);
System.out.println("일 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.MONTH, 1);
System.out.println("월 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.YEAR, 1);
System.out.println("년 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.HOUR_OF_DAY , 1);
System.out.println("시 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.MINUTE, 10);
System.out.println("분 덧셈: "+sdf.format(cal.getTime()));
cal.add(Calendar.SECOND, 10);
System.out.println("초 덧셈: "+sdf.format(cal.getTime()));
일 덧셈: 2022-03-20 01:03:43
월 덧셈: 2022-04-20 01:03:43
년 덧셈: 2023-04-20 01:03:43
시 덧셈: 2023-04-20 02:03:43
분 덧셈: 2023-04-20 02:13:43
초 덧셈: 2023-04-20 02:13:53
|
cs |
728x90