From f0a5e41ec45d2420ba7173e156806f81701f9796 Mon Sep 17 00:00:00 2001 From: Stewart Stewart Date: Tue, 20 Dec 2016 01:39:16 -0500 Subject: fix Time#toDate and sqlDateToDate --- src/main/scala/xyz/driver/core/database/package.scala | 10 ++++++++-- src/main/scala/xyz/driver/core/date.scala | 7 ------- src/main/scala/xyz/driver/core/time.scala | 4 ++-- 3 files changed, 10 insertions(+), 11 deletions(-) (limited to 'src/main') diff --git a/src/main/scala/xyz/driver/core/database/package.scala b/src/main/scala/xyz/driver/core/database/package.scala index 7d9aecb..c88260b 100644 --- a/src/main/scala/xyz/driver/core/database/package.scala +++ b/src/main/scala/xyz/driver/core/database/package.scala @@ -3,7 +3,7 @@ package xyz.driver.core import java.sql.{Date => SqlDate} import java.util.Calendar -import date.{Date, javaDateToDate} +import date.Date import slick.dbio.{DBIOAction, NoStream} package object database { @@ -13,7 +13,13 @@ package object database { def drop: DBIOAction[Unit, NoStream, slick.dbio.Effect.Schema] } - private[database] def sqlDateToDate(date: SqlDate): Date = javaDateToDate(date) + private[database] def sqlDateToDate(sqlDate: SqlDate): Date = { + // NOTE: SQL date does not have a time component, so this date + // should only be interpreted in the running JVMs timezone. + val cal = Calendar.getInstance() + cal.setTime(sqlDate) + Date(cal.get(Calendar.YEAR), date.tagMonth(cal.get(Calendar.MONTH)), cal.get(Calendar.DAY_OF_MONTH)) + } private[database] def dateToSqlDate(date: Date): SqlDate = { val cal = Calendar.getInstance() diff --git a/src/main/scala/xyz/driver/core/date.scala b/src/main/scala/xyz/driver/core/date.scala index 437729f..ab19074 100644 --- a/src/main/scala/xyz/driver/core/date.scala +++ b/src/main/scala/xyz/driver/core/date.scala @@ -22,11 +22,4 @@ object date { } final case class Date(year: Int, month: Month, day: Int) - - private[core] def javaDateToDate(javaDate: java.util.Date): Date = { - val cal = Calendar.getInstance() - cal.setTime(javaDate) - Date(cal.get(Calendar.YEAR), date.tagMonth(cal.get(Calendar.MONTH)), cal.get(Calendar.DAY_OF_MONTH)) - } - } diff --git a/src/main/scala/xyz/driver/core/time.scala b/src/main/scala/xyz/driver/core/time.scala index 5dc16a0..cbb86ed 100644 --- a/src/main/scala/xyz/driver/core/time.scala +++ b/src/main/scala/xyz/driver/core/time.scala @@ -28,9 +28,9 @@ object time { def advanceBy(duration: Duration): Time = Time(millis + duration.toMillis) def toDate(timezone: TimeZone): date.Date = { - val cal = java.util.Calendar.getInstance(timezone) + val cal = Calendar.getInstance(timezone) cal.setTimeInMillis(millis) - date.javaDateToDate(cal.getTime()) + date.Date(cal.get(Calendar.YEAR), date.tagMonth(cal.get(Calendar.MONTH)), cal.get(Calendar.DAY_OF_MONTH)) } } -- cgit v1.2.3