我使用的是Spring Data Jpa,我想要一个annontation来弥补属性上的不足,以选择date的格式。我找了一些annotation,但没有找到任何东西。我想要这样的东西:
@Entity public class User(){ ......(format dd/mm/aa) private Date birthDay; }
谢谢。
ou6hu8tu1#
您可以使用Springorg.springframework.format.annotation.DateTimeFormat,它有几种日期格式。在实体中指定birthDay属性
@Entity public class User(){ @DateTimeFormat(pattern="dd/MM/yyyy") private Date birthDay; }
kmb7vmvb2#
为了说明在存储到数据库时需要什么样的模式,可以使用@DateTimeFormat注解。
@DateTimeFormat
@Entity public class User { @DateTimeFormat("dd/MM/yyyy") private Date birthDay; }
有很多标准格式,或者您可以设置自己的自定义格式。DateTimeFormatter.class
e5njpo683#
我相信@DateTimeFormat与日期(时间)如何存储在数据库中无关-它与@RequestParam结合使用来解析HttpRequest参数。像这样:
@GetMapping("/getbybirthdate") public ResponseEntity<Page<Client>> getClientByBirthdate(@RequestParam int page, @RequestParam int size, @RequestParam @DateTimeFormat(pattern = "dd.MM.yyyy") LocalDate birthdate) { return ResponseEntity.ok().body(clientService.getClientsByBirthdate(page, size, birthdate)); }
如果你试图Mapjava.util包中的日期/时间类型,那么@Temporal是正确的选择。如果你试图Mapjava.time类型,那么除了@Basic或@Column之外,不需要显式指定任何Map注解(这是Baeldung建议的-但我相信Map不需要@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")
3条答案
按热度按时间ou6hu8tu1#
您可以使用Springorg.springframework.format.annotation.DateTimeFormat,它有几种日期格式。
在实体中指定birthDay属性
kmb7vmvb2#
为了说明在存储到数据库时需要什么样的模式,可以使用
@DateTimeFormat
注解。有很多标准格式,或者您可以设置自己的自定义格式。
DateTimeFormatter.class
e5njpo683#
我相信@DateTimeFormat与日期(时间)如何存储在数据库中无关-它与@RequestParam结合使用来解析HttpRequest参数。像这样:
如果你试图Mapjava.util包中的日期/时间类型,那么@Temporal是正确的选择。如果你试图Mapjava.time类型,那么除了@Basic或@Column之外,不需要显式指定任何Map注解(这是Baeldung建议的-但我相信Map不需要@Basic或@Column,它们只需要它们的额外属性)
但是,如果问题是在将字符串值解析为日期-时间时出现的,那么对于java.time类型,请使用
或对于ISO以外的格式,请使用DateTimeFormatter类:
对于java.util类型: