Как сравнить 2 java.sql.Date в Scala? - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть некоторая дата в формате 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 голосов
/ 16 ноября 2018

Если вы хотите использовать операторы сравнения, такие как a >= b вместо compareTo, вы можете: просто добавить

import scala.math.Ordering.Implicits._

для Comparable типов.java.sql.Date на самом деле немного необычно, потому что это Comparable с java.util.Date, а не java.sql.Date.Так что для этого типа вам понадобится надпись типа:

(a: java.util.Date) >= b
0 голосов
/ 16 ноября 2018

Вы можете использовать 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.");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...