春天时区问题中的DateTimeFormat批注

时间:2019-03-21 06:17:34

标签: java spring spring-mvc

我在将字符串转换为日期对象时遇到问题。在转换时,它会选择格林尼治标准时间(GMT)时区并将其更改为以前的日期。我想忽略时区。如果字符串值为“ 03/12/2019”,则无论时区如何,它都应为同一日期。

@DateTimeFormat(pattern = "MM/dd/yyyy") Date startDate

有什么建议吗? 谢谢。

3 个答案:

答案 0 :(得分:1)

使用java.time.LocalDate代替Date。

答案 1 :(得分:1)

使用java.time.LocalDate LocalDate没有时间,因此没有时区

@DateTimeFormat(pattern = "MM/dd/yyyy")
private LocalDate localDate;

答案 2 :(得分:1)

您可以使用Jodatime LocalDate(设计上没有时区)解决此问题:

@DateTimeFormat(iso = ISO.DATE) LocalDate startDate

可以通过调用toDate() method将其转换为JDK日期。

您还可以将其用于日期模式

@DateTimeFormat(iso = DateTimeFormat.ISO.DATE, pattern = "MM/dd/yyyy") 

Dependency for maven

<dependency>
   <groupId>joda-time</groupId>
   <artifactId>joda-time</artifactId>
   <version>2.9.3</version>
</dependency>