猿问

在实体类中选择属性的日期格式

我正在使用Spring Data Jpa,我想要一个注释来弥补属性以选择日期格式。我寻找一些注释,但我什么也没找到。我想要这样的东西:


@Entity 

public class User(){


......(format dd/mm/aa)

private Date birthDay;

}


哆啦的时光机
浏览 179回答 3
3回答

潇湘沐

您可以使用具有多种日期格式的 Spring org.springframework.format.annotation.DateTimeFormat。在您的实体中标注您的 birthDay 属性@Entity public class User(){@DateTimeFormat(pattern="dd/MM/yyyy")private Date birthDay;}

一只萌萌小番薯

要说明存储到数据库中时您想要的模式,您可以使用注释@DateTimeFormat。@Entity public class User {    @DateTimeFormat("dd/MM/yyyy")    private Date birthDay; }有很多标准格式,或者您可以设置自己的自定义格式。DateTimeFormatter.class

MMTTMM

我相信 @DateTimeFormat 与日期(时间)在数据库中的存储方式无关 - 它与 @RequestParam 结合使用来解析 HttpRequest 参数。像那样:@GetMapping("/getbybirthdate")&nbsp; &nbsp; public ResponseEntity<Page<Client>> getClientByBirthdate(@RequestParam int page, @RequestParam int size, @RequestParam&nbsp; @DateTimeFormat(pattern = "dd.MM.yyyy") LocalDate birthdate) {&nbsp; &nbsp; &nbsp; &nbsp; return ResponseEntity.ok().body(clientService.getClientsByBirthdate(page,&nbsp; size, birthdate));&nbsp; &nbsp; }如果您尝试从 java.util 包映射日期/时间类型,那么 @Temporal 是正确的选择。如果您尝试映射 java.time 类型,则无需显式指定任何映射注释,除了 @Basic 或 @Column(这是 Baeldung 建议的 - 但我相信映射不需要 @Basic 和 @Column,它们是只需要他们的额外属性)但是,如果问题出在将字符串值解析为日期时间,那么对于 java.time 类型,请使用LocalDate.parse("2017-11-15")LocalTime.parse("15:30:18")LocalDateTime.parse("2017-11-15T08:22:12")Instant.parse("2017-11-15T08:22:12Z")或者对于 ISO 以外的格式,使用 DateTimeFormatter 类:LocalDate.from(DateTimeFormatter.ISO_LOCAL_DATE.parse("2018-03-09"))对于 java.util 类型:new SimpleDateFormat("yyyy-MM-dd").parse("2017-11-15")new SimpleDateFormat("HH:mm:ss").parse("15:30:14")new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").parse("2017-11-15 15:30:14.332")
随时随地看视频慕课网APP

相关分类

Java
我要回答