我正在使用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中发送日期了
答案 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日期外,别无选择。