加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 如何使用Joda Time,JPA,EclipseLink和Postgres使

发布时间:2020-12-13 16:07:50 所属栏目:百科 来源:网络整理
导读:这似乎是一个常见的问题,所以也许我错过了一些明显的东西.使用Joda时间我想用时区保持日期.如果我没有使用JPA,我会想做这样的事情来保存和检索时间戳: create table test_dates( zone varchar(50),ts_with_time_zone timestamp with time zone);insert into
这似乎是一个常见的问题,所以也许我错过了一些明显的东西.使用Joda时间我想用时区保持日期.如果我没有使用JPA,我会想做这样的事情来保存和检索时间戳:

create table test_dates
(
  zone varchar(50),ts_with_time_zone timestamp with time zone
);

insert into test_dates values ('UTC','2012-08-12 12:34:56 UTC');
insert into test_dates values ('MST','2012-08-12 05:34:56 MST');

select 'UTC in MST',ts_with_time_zone at time zone 'MST' 
    from test_dates where zone = 'UTC';

那么如何使用Joda Time,JPA,EclipseLink和Postgres使用指定的时区保存和检索这些时间戳?

我已经看到使用converters的答案,但我不知道你将如何指定或使用时区.当然,我可以获得UTC时间并自己进行转换,但这会破坏“有时区”列的目的.这可能吗?

理想的解决方案是EclipseLink处理类似于hibernate的JodaTime.

解决方法

您可以自定义PostgreSQLPlatform以添加对通过JDBC存储时区的支持.您的JDBC驱动程序必须支持时区(最有可能通过自定义类型或Calendar API).

EclipseLink确实支持Oracle上的时区,因此如果数据库和JDBC驱动程序支持时区,也应该可以为时区扩展PostgreSQLPlatform.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读