Spark中的时间戳转换不正确[重复]

Posted

技术标签:

【中文标题】Spark中的时间戳转换不正确[重复]【英文标题】:Incorrect Timestamp conversion in Spark [duplicate] 【发布时间】:2018-09-28 16:11:04 【问题描述】:

我正在尝试将字符串(UTC 时间)转换为时间戳

List<String> list = new ArrayList<String>();
    list.add("2018-03-11 02:00:00");
    list.add("2018-03-11 03:00:00");
sparkSession.createDataset(list, Encoders.STRING()).select(to_timestamp(col("value").cast(DataTypes.TimestampType), "yyyy-MM-dd HH:mm:ss")).show();

这个的输出是

+-------------------+
|              value|
+-------------------+
|2018-03-11 03:00:00|
|2018-03-11 03:00:00|
+-------------------+

我可以看到它应用了 DST (CST),在我处理 UTC 字符串时不应该应用它。

有什么想法吗?

【问题讨论】:

【参考方案1】:

您正在使用没有时区组件的日期时间字符串。当您将字符串转换为时间戳并显示时。我猜它是在本地时区显示的。

【讨论】:

以上是关于Spark中的时间戳转换不正确[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将UTC时间戳转换为C中的纪元时间[重复]

将 unix_timestamp 转换为 spark 中的普通时间戳(以秒为单位)

将时间戳值转换为 Kotlin 中的 12/24 小时时间值

Spark 将时间戳转换成年月格式

Spark 将时间戳转换成年月格式

Pyspark:to_timestamp返回不正确的时间戳值[重复]