MaxGekk commented on a change in pull request #28576:
URL: https://github.com/apache/spark/pull/28576#discussion_r427115840



##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeFormatterHelper.scala
##########
@@ -31,17 +31,39 @@ import org.apache.spark.sql.internal.SQLConf
 import org.apache.spark.sql.internal.SQLConf.LegacyBehaviorPolicy._
 
 trait DateTimeFormatterHelper {
+  private def getOrDefault(accessor: TemporalAccessor, field: ChronoField, 
default: Int): Int = {
+    if (accessor.isSupported(field)) {
+      accessor.get(field)
+    } else {
+      default
+    }
+  }
+
+  protected def toLocalDate(temporalAccessor: TemporalAccessor): LocalDate = {
+    val year = getOrDefault(temporalAccessor, ChronoField.YEAR, 1970)
+    val month = getOrDefault(temporalAccessor, ChronoField.MONTH_OF_YEAR, 1)
+    val day = getOrDefault(temporalAccessor, ChronoField.DAY_OF_MONTH, 1)
+    LocalDate.of(year, month, day)
+  }
+
   // Converts the parsed temporal object to ZonedDateTime. It sets time 
components to zeros
   // if they does not exist in the parsed object.
   protected def toZonedDateTime(
       temporalAccessor: TemporalAccessor,
       zoneId: ZoneId): ZonedDateTime = {
-    // Parsed input might not have time related part. In that case, time 
component is set to zeros.
-    val parsedLocalTime = temporalAccessor.query(TemporalQueries.localTime)
-    val localTime = if (parsedLocalTime == null) LocalTime.MIDNIGHT else 
parsedLocalTime
-    // Parsed input must have date component. At least, year must present in 
temporalAccessor.
-    val localDate = temporalAccessor.query(TemporalQueries.localDate)
-
+    val hour = if (temporalAccessor.isSupported(ChronoField.HOUR_OF_DAY)) {
+      temporalAccessor.get(ChronoField.HOUR_OF_DAY)
+    } else if (temporalAccessor.isSupported(ChronoField.HOUR_OF_AMPM)) {
+      // When we reach here, is mean am/pm is not specified. Here we assume 
it's am.

Review comment:
       `is mean am/pm is not specified.` -> `it means that am/pm is not 
specified.`




----------------------------------------------------------------
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]

Reply via email to