如何在Scala中比较2个java.sql.Date?

时间:2018-11-16 13:38:10

标签: scala date apache-spark

我有一些日期,格式为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 ...?

2 个答案:

答案 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实际上有点不寻常,因为它是Comparablejava.util.Date而不是java.sql.Date。因此,对于这种类型,您需要输入类型:

(a: java.util.Date) >= b