首页 > 解决方案 > 将时间戳从 db 和 Timezone 列转换为 RFC 3999 格式

问题描述

在我开始之前 - 我已经查看了这些答案,但没有得到所需的答案:

我目前已从数据库 2 列中读取:

我需要将此信息转换为RFC 3999(例如 -2019-10-02 10:19:23-0800时间的表示。但是,我无法弄清楚如何做到这一点,因为从我所看到OffsetDateTime的情况来看,时区需要不同的格式。

另一种选择可能是在数据库级别上执行此操作-但我也想不出一种方法来执行此操作...

编辑:

如果你有本地时间和时区,你可以使用ZonedDateTime如下:

final date = new LocalDateTime(...);
final String timezone = ...;
ZonedDateTime.of(date, ZoneOffset.of(zone));

标签: javapostgresql

解决方案


您可能正在寻找一个简单的类型转换:

SELECT CAST (
          CAST (
             '2016-12-23 15:39:15' || ' ' || 'GMT+01:00'
             AS timestamp with time zone
          )
          AS text
       );

          text          
------------------------
 2016-12-23 17:39:15+01
(1 row)

推荐阅读