首页 > 解决方案 > 如何在 spark-scala 数据框中获取当前本地时间或系统时间?

问题描述

我试图在 spark-scala 中获取当地时间,但它正在返回 UTC。

我正在使用 java.time.LocalDateTime 来获取当前时间戳。但它返回了UTC标准。

java.sql.Timestamp.valueOf(DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss.SSSSSS").format(LocalDateTime.now))

LocalDateTime 在 spark shell 中返回本地时间,但在我的代码中它给出了 UTC 标准。

val time: LocalDateTime = LocalDateTime.now

如何获取当前时间?

当前输出为 UTC。我需要当地时间。我需要更改区域。

标签: scalaapache-sparkapache-spark-sqltimezonejava-time

解决方案


我知道的最好方法是根据您的时区使用 GMT 偏移量。获取您的 GMT 偏移量并更换。在这个例子中,我的 GMT 偏移量是 -5。让我知道它是否有帮助。让我知道他是否解决了问题。

df=spark.sql("select from_utc_timestamp(current_timestamp(),'GMT-5') AS your_local_datetime")
df.show(truncate=False)

推荐阅读