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
}
}
'Study > Java' 카테고리의 다른 글
[Java] HashMap은 값이 들어가는 순서를 보장하지 않는다 (0) | 2022.07.27 |
---|---|
[Java] 최대공약수와 최소공배수를 구하는 함수 (0) | 2022.04.25 |
[Java] Reflection(리플렉션) (0) | 2022.04.24 |
Jsoup 사용하여 웹페이지 크롤링하기 (0) | 2022.03.03 |
Java : 디자인패턴, 싱글톤 (0) | 2022.02.16 |