aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala5
-rw-r--r--sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/DateTimeUtilsSuite.scala13
2 files changed, 14 insertions, 4 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala
index 53c32a0a98..f33e34b380 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala
@@ -320,16 +320,17 @@ object DateTimeUtils {
Calendar.getInstance(
TimeZone.getTimeZone(f"GMT${timeZone.get.toChar}${segments(7)}%02d:${segments(8)}%02d"))
}
+ c.set(Calendar.MILLISECOND, 0)
if (justTime) {
- c.set(Calendar.HOUR, segments(3))
+ c.set(Calendar.HOUR_OF_DAY, segments(3))
c.set(Calendar.MINUTE, segments(4))
c.set(Calendar.SECOND, segments(5))
} else {
c.set(segments(0), segments(1) - 1, segments(2), segments(3), segments(4), segments(5))
}
- Some(c.getTimeInMillis / 1000 * 1000000 + segments(6))
+ Some(c.getTimeInMillis * 1000 + segments(6))
}
/**
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/DateTimeUtilsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/DateTimeUtilsSuite.scala
index c65fcbc4d1..5c3a621c6d 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/DateTimeUtilsSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/DateTimeUtilsSuite.scala
@@ -243,8 +243,17 @@ class DateTimeUtilsSuite extends SparkFunSuite {
UTF8String.fromString("2015-03-18T12:03:17.12312+7:30")).get ===
c.getTimeInMillis * 1000 + 120)
+ c = Calendar.getInstance()
+ c.set(Calendar.HOUR_OF_DAY, 18)
+ c.set(Calendar.MINUTE, 12)
+ c.set(Calendar.SECOND, 15)
+ c.set(Calendar.MILLISECOND, 0)
+ assert(DateTimeUtils.stringToTimestamp(
+ UTF8String.fromString("18:12:15")).get ===
+ c.getTimeInMillis * 1000)
+
c = Calendar.getInstance(TimeZone.getTimeZone("GMT+07:30"))
- c.set(Calendar.HOUR, 18)
+ c.set(Calendar.HOUR_OF_DAY, 18)
c.set(Calendar.MINUTE, 12)
c.set(Calendar.SECOND, 15)
c.set(Calendar.MILLISECOND, 123)
@@ -253,7 +262,7 @@ class DateTimeUtilsSuite extends SparkFunSuite {
c.getTimeInMillis * 1000 + 120)
c = Calendar.getInstance(TimeZone.getTimeZone("GMT+07:30"))
- c.set(Calendar.HOUR, 18)
+ c.set(Calendar.HOUR_OF_DAY, 18)
c.set(Calendar.MINUTE, 12)
c.set(Calendar.SECOND, 15)
c.set(Calendar.MILLISECOND, 123)