sourcecode

두 Joda-Time DateTimes 간의 차이를 분 단위로 찾는 방법

copyscript 2022. 9. 17. 09:52
반응형

두 Joda-Time DateTimes 간의 차이를 분 단위로 찾는 방법

제가 쓴 방법은 다음과 같습니다.

public List<Map<String, Object>> loadNotYetInEmployee(int shift, Date date,
        int transitionVal, String type, User user) {

    DateTime datetime = new DateTime(date);
    datetime = datetime
            .plus(Period.minutes(shiftTiming.getSession1InTime()));

    List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();

    sql = SqlMapUtils.getSql("attendance.attendancestatus.latein",
            parameters);
    result = getJdbcTemplate().queryForList(sql);
    for (int i = 0; i < result.size(); i++) {
        Date punchInTime = (Date) result.get(i).get("punchtime");
        DateTime punchTime = new DateTime(punchInTime);
    }
    return result;
}

제 메서드를 보면 Joda-TimeDateTime 객체가 오브젝트에 있는 것을 알 수 있습니다.datetime그리고 나의 결과로부터 나는 jodatime으로 변환하는 하나의 타임스탬프를 받고 있다.punchTime이제 이 두 날짜의 차이를 알아보겠습니다. 어떻게 하면 될까요?

뭐랄까...

DateTime today = new DateTime();
DateTime yesterday = today.minusDays(1);

Duration duration = new Duration(yesterday, today);
System.out.println(duration.getStandardDays());
System.out.println(duration.getStandardHours());
System.out.println(duration.getStandardMinutes());

어떤 출력

1
24
1440

또는

System.out.println(Minutes.minutesBetween(yesterday, today).getMinutes());

어떤 게 더 당신이 원하는지

이렇게 하면 두 DateTime 개체 간의 차이를 밀리초 단위로 확인할 수 있습니다.

DateTime d1 = new DateTime();
DateTime d2 = new DateTime();

long diffInMillis = d2.getMillis() - d1.getMillis();

뭐랄까...

Minutes.minutesBetween(getStart(), getEnd()).getMinutes();
DateTime d1 = ...;
DateTime d2 = ...;
Period period = new Period(d1, d2, PeriodType.minutes());
int differenceMinutes = period.getMinutes();

실제로, 저는 이것이 항상 다음에 근거하는 대답과 같은 결과를 줄 것이라고 생각합니다.Duration그러나 분 단위보다 다른 시간 단위는 더 정확할 수 있습니다.예를 들어 2016/2/2부터 2017/2/1까지 365일이 있지만 실제로는 1년 미만이며 사용 시 0년으로 단축해야 합니다.PeriodType.years().

이론적으로는 윤초 때문에 몇 분간 같은 일이 일어날 수 있지만, Joda는 윤초를 지원하지 않습니다.

언급URL : https://stackoverflow.com/questions/12851934/how-to-find-difference-between-two-joda-time-datetimes-in-minutes

반응형