Date_format 转换将边界日期增加 1 年

Date_format conversion is adding 1 year to the border dates

当我对 12 月 31 日日期使用 DATE_FORMAT 时 2018 年已经改成 2019 年了。谁能帮我说说这是 bug 还是我遗漏了什么。

import org.apache.spark.sql.functions._

spark.sql("select CAST(1546268400 AS TIMESTAMP)").show(false)

输出: 2018-12-31 15:00:00.0


spark.sql("select DATE_FORMAT(CAST(1546268400 AS TIMESTAMP), 'MM/dd/YYYY HH:mm')").show(false)

输出:12/31/201915:00

所以这并没有完全回答你的问题,但是 YYYYyyyy 的使用在这里似乎很重要。实际上仍在调查中,但这也可能会帮助您弄清楚。

更新: https://github.com/davedelong/calendar_fallacies/issues/26

YYYYyyyy 之间的区别是 ISO_Week 年与日历年。