相关疑难解决方法(0)

Joda-Time:Period,Interval和Duration之间有什么区别?

Joda-Time 2中,三种时间跨度有什么区别:

  • 间隔
  • 持续时间

    1. 为什么我们需要三节课?

    2. 哪一个表现更好?

    3. 为什么未分割 Period或Duration或Interval实例?例如p = p.divideBy(2);

java jodatime

189
推荐指数
2
解决办法
7万
查看次数

如何比较两个Joda时间段

它似乎并不直截了当.

我在尝试这个:

@Override
public int compare(Period o1, Period o2) {
    return o1.toStandardDays().getDays() > o2.toStandardDays().getDays() ? -1 : (o1.toStandardDays().getDays() == o2.toStandardDays().getDays() ? 0 : 1);
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个例外:

java.lang.UnsupportedOperationException: Cannot convert to Days as this period contains months and months vary in length
    at org.joda.time.Period.checkYearsAndMonths(Period.java:1455)
    at org.joda.time.Period.toStandardDays(Period.java:1314)

我希望Peroid有一种isLongerThan(Period p)方法.

java jodatime

17
推荐指数
1
解决办法
1万
查看次数

Joda - 如何在不忽略TimeZones的情况下比较两个DateTime对象

我很难比较不同时区中的两个DateTime对象.

我所知道的:

1)我知道,"isBefore()"方法并没有采取时区考虑在内.因此,下面的"if"条件不正确(即使我希望它是真的):

long aRandomTimeSinceTheEpoch = 1234567789L;

String TIMEZONE_SYDNEY_AUSTRALIA = "Australia/Sydney";
DateTimeZone sydneyTimeZone = DateTimeZone.forID(TIMEZONE_SYDNEY_AUSTRALIA);
Chronology chronologySydney = GJChronology.getInstance(sydneyTimeZone);

String TIMEZONE_NEWYORK = "America/New_York";
DateTimeZone newYorkTimeZone = DateTimeZone.forID(TIMEZONE_NEWYORK);
Chronology chronologyNewYork = GJChronology.getInstance(newYorkTimeZone);

DateTime sydneyDateTime = new DateTime(aRandomTimeSinceTheEpoch, chronologySydney);
DateTime newYorkDateTime = new DateTime(aRandomTimeSinceTheEpoch, chronologyNewYork);

if( newYorkDateTime.isBefore(sydneyDateTime) ){
    System.out.println("true");
}
Run Code Online (Sandbox Code Playgroud)

2)对这个答案(基于/sf/answers/615578631/)看来正确的方式做到这一点是不是时期,如时期是什么,我试图做正确的概念.但是,该代码有时会抛出"UnsupportedOperationException - 如果句点包含年份或月份"异常(因为我处理的日期可能相差最多2年).

简而言之,我想要的只是一个考虑TimeZones 的"isBefore()"方法.(并且不会像上面那样抛出异常).我如何在Joda中实现这一目标?

java timezone datetime epoch jodatime

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×3

jodatime ×3

datetime ×1

epoch ×1

timezone ×1