我正在尝试计算两个joda
日期之间的小时差异。
val d1 = getDateTime1()
val d2 = getDateTime2()
这是我做的:
# attemp1
val hours = Hours.hoursBetween(d1, d2) // error - types mismatch
# attempt2
val p = Period(d1, d2, PeriodType.hours()) // error - there is such a constructor
p.getHours
那我该怎么做?
答案 0 :(得分:5)
getDateTime1
的类型应为org.joda.time.DateTime
。
这很好:
val d1: org.joda.time.DateTime = DateTime.now
val d2: org.joda.time.DateTime = DateTime.nextMonth
val hours = Hours.hoursBetween(d1, d2)
// org.joda.time.Hours = PT672H
apply
没有工厂方法Period
,您应该使用new
来创建Period
:
val p = new Period(d1, d2, PeriodType.hours())
// org.joda.time.Period = PT672H
如果您使用nscala-time,您还可以使用方法to
获取Interval
,然后将其转换为Period
:
d1 to d2 toPeriod PeriodType.hours
// org.joda.time.Period = PT672H
(d1 to d2).duration.getStandardHours
// Long = 672
同时尝试sbt clean
。