首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何指示Spring使用UTC时区作为日期参数?

如何指示Spring使用UTC时区作为日期参数?
EN

Stack Overflow用户
提问于 2018-10-11 21:03:43
回答 3查看 2.5K关注 0票数 0

我有以下API

代码语言:javascript
复制
public ResponseEntity<ResponseDataToSeller> getTrackingDataByDate(@RequestBody RequestBodyBySeller requestBodyBySeller) {
    System.out.println(requestBodyBySeller.getEndDate());
    System.out.println(requestBodyBySeller.getEndDate().getDate());
    System.out.println(requestBodyBySeller.getEndDate().getHours());

public class RequestBodyBySeller {
    @ApiModelProperty(dataType="Date", notes = "endDate",required = true)
    Date endDate;

当我使用"endDate": "2018-10-11"提出请求时,它会打印

代码语言:javascript
复制
2018-10-11 16:54:45.897  INFO 11996 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 3 ms
Wed Oct 10 20:00:00 EDT 2018
10
20

这会扰乱SQL查询,因为我正在测试是否是hit_date <= #{endDate}。它应该返回2018-10-11年的结果,但不是,因为Spring将日期解释为2018-10-10。如何让Spring在将日期参数解析为API时使用UTC时区?

Spring Boot 1.5.13,MyBatis 3.4.5,MyBatis Spring1.3.1

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-10-12 18:04:42

我将类更改为java.time.LocalDate并添加了这个依赖项

代码语言:javascript
复制
    <!-- For LocalDate to be deserialized using ISO format -->
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
    </dependency>

https://stackoverflow.com/a/46884603/148844

票数 0
EN

Stack Overflow用户

发布于 2018-10-11 21:16:42

使用本地日期,问题是当涉及日期时,java尝试将日期转换为服务器时区,因为没有指定时区,它需要时间ad UTC,然后进行转换,LocalDate不包含时区信息,因此,日期将按原样解析。

对不起,忘了提一下,要处理本地约会时间,您需要使用杰克逊-数据类型-jsr310 310。然后,正如示例所述,您可以用以下内容对类进行注释:

代码语言:javascript
复制
@JsonFormat(pattern = "dd/MM/yyyy")
@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonSerialize(using = LocalDateSerializer.class)
private LocalDate birthdate;*
票数 0
EN

Stack Overflow用户

发布于 2018-10-12 03:51:02

在使用springmvc时,有一些方法可以定义jackson特性。

  1. 使用属性。spring.jackson.xxxx。比如你想要设置时区。在spring.jackson.time-zone=xxx中使用add application.properties
  2. 定义实现Jackson2ObjectMapperBuilderCustomizer的spring
  3. 您可以在春季直接创建ObjectMapper bean,定制您想要的。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52768888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档