cloud-fan commented on a change in pull request #28787:
URL: https://github.com/apache/spark/pull/28787#discussion_r438549793
##########
File path:
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/util/RebaseDateTimeSuite.scala
##########
@@ -409,4 +409,31 @@ class RebaseDateTimeSuite extends SparkFunSuite with
Matchers with SQLHelper {
}
}
}
+
+ test("SPARK-31959: JST -> HKT at Asia/Hong_Kong in 1945") {
+ // The 'Asia/Hong_Kong' time zone switched from 'Japan Standard Time' (JST
= UTC+9)
+ // to 'Hong Kong Time' (HKT = UTC+8). After Sunday, 18 November, 1945
01:59:59 AM,
+ // clocks were moved backward to become Sunday, 18 November, 1945 01:00:00
AM.
+ // In this way, the overlap happened w/o Daylight Saving Time.
+ val hkZid = getZoneId("Asia/Hong_Kong")
+ withDefaultTimeZone(hkZid) {
+ val ldt = LocalDateTime.of(1945, 11, 18, 1, 30, 0)
+ val earlierMicros =
instantToMicros(ldt.atZone(hkZid).withEarlierOffsetAtOverlap().toInstant)
+ val laterMicros =
instantToMicros(ldt.atZone(hkZid).withLaterOffsetAtOverlap().toInstant)
+ assert(earlierMicros + MICROS_PER_HOUR === laterMicros)
+ val rebasedEarlierMicros = rebaseGregorianToJulianMicros(hkZid,
earlierMicros)
+ val rebasedLaterMicros = rebaseGregorianToJulianMicros(hkZid,
laterMicros)
+ def toTsStr(micros: Long): String = toJavaTimestamp(micros).toString
+ val expected = "1945-11-18 01:30:00.0"
+ assert(toTsStr(rebasedEarlierMicros) === expected)
+ assert(toTsStr(rebasedLaterMicros) === expected)
+ assert(rebasedEarlierMicros + MICROS_PER_HOUR === rebasedLaterMicros)
+ // Check optimized rebasing
Review comment:
what do you mean by "optimized rebase"?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]