Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mongodb更改数据库时区_Java_Mongodb_Spring Mongodb - Fatal编程技术网

Java mongodb更改数据库时区

Java mongodb更改数据库时区,java,mongodb,spring-mongodb,Java,Mongodb,Spring Mongodb,我使用spring boot和mongodb。当我在db中持久化对象时,它将更改为我的本地时区。当我在mongo上运行此命令时,mongo TimezoneOffset为-210: newdate().getTimezoneOffset()=>-210。问题是从另一台服务器中的生产mongodb开始,该值为new Date()。getTimezoneOffset()=>0 问题是如何在像生产MongoDB这样的开发中进行TimezoneOffset 我持久化的java类是: Class Audi

我使用spring boot和mongodb。当我在db中持久化对象时,它将更改为我的本地时区。当我在mongo上运行此命令时,mongo TimezoneOffset为-210:
newdate().getTimezoneOffset()=>-210
。问题是从另一台服务器中的生产mongodb开始,该值为
new Date()。getTimezoneOffset()=>0

问题是如何在像生产MongoDB这样的开发中进行
TimezoneOffset

我持久化的java类是:

Class AuditDocument{

    @Id
    private String id;
    @NotNull
    private String creatorUsername;
    @CreatedDate
    private Date createDate;
}
开发MongoDB中createDate距离当前时间为-3:30的文档:

{
    "_id" : ObjectId("5f697ee483eede29e2c13a2d"),
    "creatorUsername" : "superadmin",
    "createDate" : ISODate("2020-09-22T04:34:44.798Z"),
}
new Date().getTimezoneOffset()
提供运行mongo shell的客户端系统上的时区偏移量

  • 这与服务器使用的时区偏移量无关。所有时间都存储在MongoDB中的UTC中

  • 这与使用MongoDB的应用程序使用的时区偏移完全不同。每种编程语言/环境都有自己设置时区偏移的方法

  • 您应该研究如何在应用程序中配置时区偏移量。

    new Date()。getTimezoneOffset()提供运行mongo shell的客户端系统上的时区偏移量

  • 这与服务器使用的时区偏移量无关。所有时间都存储在MongoDB中的UTC中

  • 这与使用MongoDB的应用程序使用的时区偏移完全不同。每种编程语言/环境都有自己设置时区偏移的方法


  • 您应该研究如何在应用程序中配置时区偏移。

    ISODate(“2020-09-22T04:34:44.798Z”)
    表示UTC时间,因此我不明白为什么您的本地时区会相关。在本地时区显示此时间通常由客户端应用程序负责,而不是由服务器负责。@WernfriedDomscheit mongo将其更改为-210分钟前。我的本地时区是+3:30。默认情况下,我希望开发mongodb是正常的,并且生产必须更改,因为对于预览数据,用户希望看到他们的本地时间。但是在这种情况下,我的问题是只有统一
    TimezoneOffset
    值。
    TimezoneOffset
    不是MongoDB的属性,而是在客户端定义的。可能会设置环境变量,比如
    JAVA\u TOOL\u OPTIONS=-Duser.timezone=Europe/Zurich
    ,不幸的是,这个变量不在我的本地机器(windows)和mongodb(linux)环境中。(linux命令:printenv JAVA_TOOL_OPTIONS=>empty)好,然后设置它<代码>ISODate(“2020-09-22T04:34:44.798Z”)
    表示UTC时间,因此我不明白为什么您的本地时区会相关。在本地时区显示此时间通常由客户端应用程序负责,而不是由服务器负责。@WernfriedDomscheit mongo将其更改为-210分钟前。我的本地时区是+3:30。默认情况下,我希望开发mongodb是正常的,并且生产必须更改,因为对于预览数据,用户希望看到他们的本地时间。但是在这种情况下,我的问题是只有统一
    TimezoneOffset
    值。
    TimezoneOffset
    不是MongoDB的属性,而是在客户端定义的。可能会设置环境变量,比如
    JAVA\u TOOL\u OPTIONS=-Duser.timezone=Europe/Zurich
    ,不幸的是,这个变量不在我的本地机器(windows)和mongodb(linux)环境中。(linux命令:printenv JAVA_TOOL_OPTIONS=>empty)好,然后设置它!mongodb可以从我的本地时间减少210分钟以保持utc时间吗?如果ok,那么与另一个没有类似操作的mongodb服务器有什么区别!?mongodb可以从我的本地时间减少210分钟以保持utc时间吗?如果ok,那么与另一个没有类似操作的mongodb服务器有什么区别!?