目标是获取特定格式的当前本地时间戳以及添加的时区偏移量。例如:
2023-08-28T03:51:46.222+09:30
我找不到可以返回时区偏移量的 Spark 函数 带冒号
:
到目前为止我有这个 - 偏移量不正确并且错过了冒号:
from pyspark.sql import functions as F
df.select(F.date_format(F.from_utc_timestamp(F.current_timestamp(), 'Australia/Adelaide'), "yyyy-MM-dd'T'HH:mm:ss.SSSZ")).show(1, truncate=0)
# +----------------------------------------------------------------------------------------------------+
# |date_format(from_utc_timestamp(current_timestamp(), Australia/Adelaide), yyyy-MM-dd'T'HH:mm:ss.SSSZ)|
# +----------------------------------------------------------------------------------------------------+
# |2023-08-28T22:53:42.651+0000 |
# +----------------------------------------------------------------------------------------------------+
我使用 Spark 3.2。
首先使用
current_timestamp
获取当前时区的时间戳,然后使用 date_format
和特殊格式说明符 xxx
输出以冒号分隔的小时和分钟偏移量
fmt = "yyyy-MM-dd'T'HH:mm:ss.SSSxxx"
df.select(F.date_format(F.current_timestamp(), fmt))
+--------------------------------------------------------------+
|date_format(current_timestamp(), yyyy-MM-dd'T'HH:mm:ss.SSSxxx)|
+--------------------------------------------------------------+
|2023-08-28T19:54:08.624+05:30 |
+--------------------------------------------------------------+