我有一些日期,格式为java.sql.Date,我想对其进行比较
import java.sql.Date
import org.apache.spark.sql.types.{DateType, IntegerType}
var a = Date.valueOf("2018-11-09")
var b = Date.valueOf("2019-11-09")
a: java.sql.Date = 2018-11-09
b: java.sql.Date = 2019-11-09
如果我将等号与之比较
a == b
res1: Boolean = false
但是,如果我想知道哪一个比另一个更笨,它会返回错误:
a >= b
<console>:37: error: value > is not a member of java.sql.Date
我希望它返回false ...
我如何比较a和b ...?
答案 0 :(得分:3)
您可以使用java.sql.Date#compareTo
:
var a = Date.valueOf("2018-11-09")
var b = Date.valueOf("2019-11-09")
if (b.compareTo(a) > 0) {
println("Date b is later than date a.");
}
答案 1 :(得分:2)
如果要使用诸如a >= b
之类的比较运算符而不是compareTo
,则可以:只需添加
import scala.math.Ordering.Implicits._
用于Comparable
类型。 java.sql.Date
实际上有点不寻常,因为它是Comparable
与java.util.Date
而不是java.sql.Date
。因此,对于这种类型,您需要输入类型:
(a: java.util.Date) >= b