>  Q&A  >  본문

java - hibernate 时间类型转换,date 属性的时间字段取出来后变样了

这个是字段属性

@Column(name = "create_time",insertable = false,updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date create_time;
保存在mysql的时候数据是正确的,
create_time
2016-08-30 09:27:30
2016-08-30 09:31:32

但是取出来的时候变成了

"create_time": "2016-08-30T01:31:32.000+0000",

这种时间,怎么才能做成数据库那样的时间返回格式呢
程序是直接return 这个对象后 返回 json 的
自己查询过一些答案,都是取出来自己去格式化的,可是我这里是直接返回对象json解析,对象的属性是 date 类型,格式化后转换成 string 后没办法 set 了

这个程序里面我看之前的人好像写了一个自定义类型的 string-binary (对应数据库存 varbinary)

@Column(name = "content",nullable = false)
@Type(type = "string-binary")
private String content;

这个时间是不是也得需要这样,自己自定义一个类型去弄?

还有,我想以后数据库保存时间字段都保存成时间戳该怎么注解字段的默认值呢

我是从PHP转到Java来的,不怎么懂
公司的Java跑了,唉,赶鸭子上架

PHP中文网PHP中文网2741일 전970

모든 응답(2)나는 대답할 것이다

  • 阿神

    阿神2017-04-18 09:58:01

    마침내 해결책을 찾았습니다.
    사용자 정의 유형을 직접 추가해야 합니다
    自定义类 LocalDateTimeType

    으아악

    그런 다음 프로젝트에서 이 유형을 구성하세요
    여기서 모델 구성을 소개하세요

    으아악

    마지막으로 사용자 정의 형식이 필요한 필드에 이 유형을 주석으로 추가하세요

    으아악

    최종 귀환은 이렇습니다

    으아악

    회신하다
    0
  • PHPz

    PHPz2017-04-18 09:58:01

    Date와 다양한 문자열 유형 형식 간의 변환을 구현하기 위해 DateUtils.java 클래스를 제공합니다.

    으아악

    회신하다
    0
  • 취소회신하다