diff --git a/sql/api/src/main/scala/org/apache/spark/sql/catalyst/util/TimestampFormatter.scala b/sql/api/src/main/scala/org/apache/spark/sql/catalyst/util/TimestampFormatter.scala index d59b52a3818ac..9f57f8375c54d 100644 --- a/sql/api/src/main/scala/org/apache/spark/sql/catalyst/util/TimestampFormatter.scala +++ b/sql/api/src/main/scala/org/apache/spark/sql/catalyst/util/TimestampFormatter.scala @@ -162,6 +162,9 @@ class Iso8601TimestampFormatter( protected lazy val formatter: DateTimeFormatter = getOrCreateFormatter(pattern, locale, isParsing) + @transient + private lazy val zonedFormatter: DateTimeFormatter = formatter.withZone(zoneId) + @transient protected lazy val legacyFormatter = TimestampFormatter.getLegacyFormatter( pattern, zoneId, locale, legacyFormat) @@ -231,7 +234,7 @@ class Iso8601TimestampFormatter( override def format(instant: Instant): String = { try { - formatter.withZone(zoneId).format(instant) + zonedFormatter.format(instant) } catch checkFormattedDiff(toJavaTimestamp(instantToMicros(instant)), (t: Timestamp) => format(t)) }