计算两个日期时间值之间的小时差异

时间:2017-01-17 19:14:14

标签: scala date

我的日期时间字符串yyyy-MMM-dd hh:mm的值为2016-JAN-17 12:23,我需要检查当前时间与此日期时间字符串之间的差异是否大于5小时。如果它更大,那么变量is_greater的值应该等于1,否则为0.

val datetimestring = "2016-JAN-17 12:23"
val formatter_datetime = new java.text.SimpleDateFormat("yyyy-MMM-dd hh:mm")
val parsed = formatter_datetime.parse(datetimestring)
val date = new java.sql.Date(parsed.getTime())
val now = Calendar.getInstance
val duration = now.getTime() - date.getTime()
val diffInHours = TimeUnit.MILLISECONDS.toHours(duration)
val is_greater: String = if (diffInHours<=5) "1" else "0"

我在行val duration = now.getTime() - date.getTime()中收到编译错误。它说Cannot resolve symbol -

P.S。我想避免使用任何外部库,例如jodatime。

2 个答案:

答案 0 :(得分:0)

由于getTime方法返回Date类的实例(而不是某些数值),您应该替换:

val duration = now.getTime() - date.getTime()

使用:

val duration = now.getTimeInMillis() - date.getTimeInMillis()

答案 1 :(得分:0)

为了最终将值转换为小时,请使用:

import java.util.concurrent.TimeUnit

TimeUnit.MILLISECONDS.toHours(miliseconds)