Spring Boot-MongoRepository日期转换

时间:2018-12-10 10:17:29

标签: java mongodb spring-boot spring-data-mongodb

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

2 个答案:

答案 0 :(得分:0)

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);
  }
}

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

答案 1 :(得分:-1)

Mongo罗盘使用本地PC时区来转换和显示数据。至于Java,除了在所需的时区中发送Java日期外,别无选择。