【发布时间】:2019-08-10 21:35:00
【问题描述】:
application.yml配置:
jackson:
date-format: yyyy-MM-dd
timestamp-format:yyyy-MM-dd HH:mm:ss
serialization:
write-dates-as-timestamps: false
Bean 属性:
@Entity
@Column(nullable = false)
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Temporal(TemporalType.DATE)
private Date date_created;
@Column(nullable = false)
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Temporal(TemporalType.TIMESTAMP)
private Date reg_date;
我将所有Date 字段设置为java.util.Date 类型,接收日期格式为yyyy-MM-dd
和时间戳类型(yyyy-MM-dd HH:mm:ss)根据请求参数样式(yyyy-MM-dd或yyyy-MM-dd HH:mm:ss)
为了使用timestamp,我找到了@Temporal(TemporalType.Date or Timestamp),它是由DB Type映射的。
日期和时间戳格式正确存储,如yyyy-MM-dd 或yyyy-MM-dd HH:mm:ss.sss
RestController类:
@PostMapping("/")
public ResponseEntity<Object> create(@RequestBody CreateVO createVO, HttpServletRequest request) {
System.out.println("planned_date> "+createVO.getDate_planned_start());
System.out.println("regdate> "+createVO.getReg_date());
}
设置为:
planned_date> Wed Mar 20 09:00:00 KST 2019 // Date Result
regdate> Mon Oct 01 16:45:00 KST 2012 //Timestamp Result
但是,我在 RestController Date 中收到的格式与我预期的不同。
有没有办法在Controller接收yyyy-MM-dd和yyyy-MM-dd HH:mm:ss?
我也想知道application.yml 的设置。因为我不确定如何设置时间戳格式。
【问题讨论】:
-
您是否希望实体中的
Date和/或从getDate_planned_start和getReg_date返回的Date具有您指定的格式?这是不可能的。Date不能有格式。此外,您不应该使用Date类。它设计得很糟糕,而且已经过时了。你不想从java.time, the modern Java date and time API 和jackson-modules-java8 获得LocalDate和LocalDateTime吗?
标签: java spring-boot date jackson format