0

我在我的项目中使用了 Joda date api,但似乎我做错了什么,或者 Joda api 没有返回我想要得到的东西。我想得到两个日期之间的小时和分钟的差异。

这是我的代码

Date date1 = new SimpleDateFormat("MM/dd/yy").parse("05/18/2009");
Date date2 = new SimpleDateFormat("MM/dd/yyyy").parse("05/18/2007");
DateTime d1 = new DateTime(date1);
DateTime d2 = new DateTime(date2);
Period p = new Period(d1, d2);
long minutes = p.getMinutes();
long hours = p.getHours();

System.out.println("hoursBetween-----"+minutes+"-----minutesBetween------"+hours);

我在几分钟和几小时内都得到输出 0 和 0。

4

3 回答 3

2

getMinutes()不返回分钟数。它返回期间的分钟部分。

这两个日期之间的时间段为 -2 年、0 月、0 周、0 天、0 小时、0 分钟、0 秒。

如果您想要两个日期之间的小时数和分钟数,请使用

Hours.hoursBetween(d1, d2).getHours()
Minutes.minutesBetween(d1, d2).getMinutes();
于 2013-04-12T09:42:19.787 回答
0

You can also try this -

DateTime d1 = new DateTime(2009, 5, 18, 4, 0);
        DateTime d2 = new DateTime(2007, 5, 18, 0, 30);

            Period period = new Period(d2, d1);
            PeriodFormatterBuilder HHMMSSFormater =
                    new PeriodFormatterBuilder().appendYears().appendSeparator("-").appendMonths().appendSeparator("-")
                    .appendDays().appendSeparator("-").appendHours().appendSeparator("-").appendMinutes().appendSeparator("-").appendSeconds();
            System.out.println(HHMMSSFormater.toFormatter().print(period));
于 2013-04-12T09:47:39.180 回答
0

DateTime d1 = new DateTime(2009, 5, 18, 0, 0); DateTime d2 = new DateTime(2007, 5, 18, 0, 0);

        Period period = new Period(d2, d1);
        PeriodFormatterBuilder HHMMSSFormater =
                new PeriodFormatterBuilder().appendHours().appendSeparator("-").appendMinutes().appendSeparator("-").appendSeconds();
        System.out.println(period.getYears());
        System.out.println(period.getMonths());
        System.out.println(period.getDays());
        System.out.println(period.getHours());
        System.out.println(period.getMinutes());

请尝试此代码。

于 2013-04-12T09:43:22.240 回答