Преобразование даты в метку времени в Scala

В Scala, я конвертирую Date в Timestamp. В настоящее время я делаю это с помощью:

val date = new java.util.Date()
new java.sql.Timestamp(new org.joda.time.DateTime(date).getMillis)

Есть ли способ сделать это? Ответы на Java также будут актуальны.

Ответ 1

Почему не так просто, как использовать Date.getTime()?

new java.sql.Timestamp(date.getTime)

Вам не нужно время Джоды для этого. Scala здесь не имеет особого значения, если вам не требуется неявное преобразование:

//import once, use everywhere
implicit def date2timestamp(date: java.util.Date) = 
    new java.sql.Timestamp(date.getTime)

val date = new java.util.Date

//conversion happens implicitly
val timestamp: java.sql.Timestamp = date

Ответ 2

Если вы не хотите даже создавать объект Date, вы можете просто использовать это:

new java.sql.Timestamp(System.currentTimeMillis())

Я бы подумал, что это будет немного более эффективным, чем использование новой Date(). Но если у вас уже есть объект даты, который вы хотите получить, дата будет работать для вас.

new java.sql.Timestamp(data.getTime())