TimeUnit.DAYS.convert(
Math.abs(
new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").parse("30-03-2020 00:00:00").getTime() -
new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").parse("1-03-2020 00:00:00").getTime()
),
TimeUnit.MILLISECONDS)
결과는 28이지만 29 여야합니다.
시간대 / 위치가 문제가 될 수 있습니까?
시간에 수학을 하지 마십시오 . 적절한 시간 라이브러리를 사용하십시오 (
—
Andy Turner
java.time
[여러분이 Java 7을 사용하고 있음에도 불구하고], ThreeTenBp , Joda).
나는 누군가가가는 회의에 참석하고 싶었다. "좋아요. 이제 우리는 시간대가 생겼습니다. 100 % arse-mode로 가서 일광 절약이라고 불리는 것을 구현했습니다. 내 산 여행 후 꿈에서 나에게 왔습니다. 지난 밤."
—
MonkeyZeus
이 문제는 일광 절약 시간제 표준 시간대에있는 컴퓨터에서만 발생합니다. 일광 절약 시간제를 사용하지 않는 시간대의 정확한 일수 (29)를 제공합니다!
—
Gopinath
SimpleDateFormat
더 이상 사용하지 마십시오. 더 이상 사용 되지 않습니다.java.time
대신 패키지를 사용하십시오 . 에서SimpleDateFormat
의 경우, 사용DateTimeFormatter
. Java 7의 경우 아래 Andy Turner의 의견을 참조하십시오.