猿问

如何找到两个Joda-Time DateTimes之间的差异,以分钟为单位

如何找到两个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-Time DateTime对象datetime,从我的结果我得到一个时间戳,我转换为jodatime punchTime。现在我想找出这两个日期之间的差异,我该怎么做?


婷婷同学_
浏览 1102回答 3
3回答

摇曳的蔷薇

这将使您获得两个DateTime对象之间的区别,以毫秒为单位:DateTime d1 = new DateTime();DateTime d2 = new DateTime();long diffInMillis = d2.getMillis() - d1.getMillis();

绝地无双

就像是...DateTime&nbsp;today&nbsp;=&nbsp;new&nbsp;DateTime();DateTime&nbsp;yesterday&nbsp;=&nbsp;today.minusDays(1);Duration&nbsp;duration&nbsp;=&nbsp;new&nbsp;Duration(yesterday,&nbsp;today);System.out.println(duration.getStandardDays());System.out.println(duration.getStandardHours());System.out.println(duration.getStandardMinutes());哪个输出1241440要么System.out.println(Minutes.minutesBetween(yesterday,&nbsp;today).getMinutes());这可能是你所追求的更多

慕村9548890

DateTime&nbsp;d1&nbsp;=&nbsp;...;DateTime&nbsp;d2&nbsp;=&nbsp;...;Period&nbsp;period&nbsp;=&nbsp;new&nbsp;Period(d1,&nbsp;d2,&nbsp;PeriodType.minutes());int&nbsp;differenceMinutes&nbsp;=&nbsp;period.getMinutes();在实践中,我认为这将总是给出与基于答案相同的结果Duration。但是,对于不同于分钟的时间单位,它可能更正确。例如,从2016/2/2到2017/2/1有365天,但实际上它不到1年,如果使用,应截断为0年PeriodType.years()。从理论上讲,由于闰秒,同样可能会发生几分钟,但Joda不支持闰秒。
随时随地看视频慕课网APP

相关分类

Java
我要回答