首页 > 解决方案 > Spring boot - MongoRepository 日期转换

问题描述

我正在使用 Spring Boot 和使用 Spring Data 的 Mongo 存储库。我的 Spring 应用程序默认使用UTC时区。当我按日期查询 mongo DB 时,我在参数中发送日期如下,@Query: [...] 'TransactionDate': { $gte: ?4, $lt: ?5 } }并在参数中发送 Java 日期。但是,Mongo 将此 UTC 日期转换为 GMT,尽管它已经是 GMT 并且在返回数据时。它还会转换为本地时区,就好像它没有考虑 JVM 时区一样。如何强制 mongo 停止进行转换并了解我已经在 GMT 中发送日期

标签: javamongodbspring-bootspring-data-mongodb

解决方案


package com.onlinetutorialspoint.SpringBoot_Custom_ErrorPage;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.TimeZone;

@SpringBootApplication
public class Application {
  @PostConstruct
  public void init(){
    // Setting Spring Boot SetTimeZone
    TimeZone.setDefault(TimeZone.getTimeZone("IST"));
  }
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

它应该可以解决您的问题。


推荐阅读