火花日期格式问题

问题描述 投票:1回答:1

我已经观察到火花日期格式中的异常行为。实际上,我需要将日期yy转换为yyyy。日期转换后,日期应为20yy

我尝试过以下方法,但2040年后失败了。

import org.apache.spark.sql.functions._
val df=   Seq(("06/03/35"),("07/24/40"), ("11/15/43"), ("12/15/12"), ("11/15/20"), ("12/12/22")).toDF("Date")

df.withColumn("newdate", from_unixtime(unix_timestamp($"Date", "mm/dd/yy"), "mm/dd/yyyy")).show

+--------+----------+
|    Date|   newdate|
+--------+----------+
| 06/3/35|06/03/2035|
|07/24/40|07/24/2040|
|11/15/43|11/15/1943|  // Here year appended with 19
|12/15/12|12/15/2012|
|11/15/20|11/15/2020|
|12/12/22|12/12/2022|
+--------+----------+

为什么会这样,有没有任何日期实用程序函数可以直接使用而无需在字符串日期后面附加20呢?>

我已经观察到火花日期格式中的异常行为。实际上,我需要将日期yy转换为yyyy。日期转换后,它应为我尝试的日期为20yy,如下所示,但2040年后失败...

scala apache-spark date-format
1个回答
2
投票

解析两位数的年份字符串受SimpleDateFormat docs中记录的某些相对解释的约束:

© www.soinside.com 2019 - 2024. All rights reserved.