我试着用这个:
secondsFromMidnight = Seconds.secondsBetween(localDateTime.toLocalDate(),
localDateTime).getSeconds();
但它会引发异常(参见下文)。我认为这是一个很好的方法,但我还没有成功地将它适应我的情况。如果我写这个:
DateTime dateTimeFromMidnight = new DateMidnight(localDateTime.getChronology()).toDateTime();
Duration duration = new Duration(dateTimeFromMidnight, localDateTime.toDateTime());
它与时区混淆(我少了 1 小时)。
如果您的解决方案也很容易适应数小时、数分钟等,那将是一个加分项。
我绝对需要使用 LocalDateTime 作为输入类型,请不要使用其他类发布解决方案。
Exception in thread "main" java.lang.IllegalArgumentException: ReadablePartial objects must have the same set of fields
at org.joda.time.base.BaseSingleFieldPeriod.between(BaseSingleFieldPeriod.java:92)
at org.joda.time.Seconds.secondsBetween(Seconds.java:124)