본문 바로가기

Study/Java

[Java] 두 날짜의 차이 구하기

Python을 사용하면 날짜간의 차이를 쉽게 구할 수 있지만, 자바는 문자열로 선언된 날짜를 포매터로 파싱해 주고 Date 객체를 통해 생성된 숫자로 별도 연산을 해주어야 한다.

 

from datetime import datetime

now = datetime.now()
print(now)              # 2022-08-24 13:03:28.525645

past = datetime.strptime("20210305", "%Y%m%d")
print(past)             # 2021-03-05 00:00:00

diff_days =  now - past
print(diff_days)        # 537 days, 13:03:28.525645

# 며칠 차이 나는지
print("diff_days : ", diff.days)

# 차이가 나는 일 수를 초단위로
print("diff_seconds : ", diff.seconds)

# 차이가 나는 일 수를 마이크로 세컨즈 단위로
print("diff_microseconds : ", diff.microseconds)

 

 

이렇게 쉽게 할 수 있는 것을.. 자바로 구현하면

 

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Date;

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

        String now = LocalDate.now().toString();
        String pase = "2014-10-05";             // 최초 등록일

        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

        Date nowFormat = format.parse(now);
        Date pastFormat = format.parse(initDate);
        
        long diffSec = (nowFormat.getTime() - pastFormat.getTime()) / 1000;
        long diffDays = (diffSec / (24 * 60 * 60)) + 1;

        System.out.println("diffDays = " + diffDays);	// 2881
    }
}