如何将quarkus中的时区设置为UTC
How to set timezone in quarkus to UTC
我正在使用 quarkus 1.2.0。
一般:
客户端浏览器正在向服务器请求数据。服务器(Quarkus 应用程序)正在从客户端接收 utc 时间。 (ok) 现在服务器应该将数据库中的数据与客户端浏览器时间进行比较,并且应该 return 数据库中的每个数据都在客户端时间之后。
我有 postgres 作为数据库。每次我将新数据保存或将数据修改到数据库中时,我都会使用 UTC 时间保存数据。
我在 persistence.xml 中使用 <property name="hibernate.jdbc.time_zone" value="UTC"/>
强制执行此操作。
我已经检查过了,数据以 utc 时间保存在 postgres 数据库中。
问题:
虽然数据库中的数据是以utc格式保存的,但是当quarkus从数据库中获取数据时,它会将数据传输到本地时区(GMT +0100)。
现在我的问题是服务器正在将转换为 (GMT) 的数据与客户端时间 (UTC) 进行比较。
如何强制 quarkus 使用 UTC 时区?
你试过在执行你的 jar 时通过 -Duser.timezone=UTC
吗?
Quarkus 应用只是一个标准的 Java 应用。
另一种选择是通过创建观察启动事件的 CDI bean 直接在您的应用程序中进行设置:
@Singleton
public class TimezoneSettings {
public void setTimezone(@Observes StartupEvent startupEvent) {
System.setProperty("user.timezone", "UTC");
}
}
不过,我只是不完全确定您的申请是否足够早。您将不得不尝试一下。
此解决方案也适用于 quarkus 开发模式:
import javax.ws.rs.core.Application;
import java.util.TimeZone;
public class YourApplication extends Application {
public YourApplication() {
super();
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
}
如果使用休眠:https://quarkus.io/guides/all-config
quarkus.hibernate-orm.jdbc.timezone=UTC
我正在使用 quarkus 1.2.0。
一般:
客户端浏览器正在向服务器请求数据。服务器(Quarkus 应用程序)正在从客户端接收 utc 时间。 (ok) 现在服务器应该将数据库中的数据与客户端浏览器时间进行比较,并且应该 return 数据库中的每个数据都在客户端时间之后。
我有 postgres 作为数据库。每次我将新数据保存或将数据修改到数据库中时,我都会使用 UTC 时间保存数据。
我在 persistence.xml 中使用 <property name="hibernate.jdbc.time_zone" value="UTC"/>
强制执行此操作。
我已经检查过了,数据以 utc 时间保存在 postgres 数据库中。
问题:
虽然数据库中的数据是以utc格式保存的,但是当quarkus从数据库中获取数据时,它会将数据传输到本地时区(GMT +0100)。 现在我的问题是服务器正在将转换为 (GMT) 的数据与客户端时间 (UTC) 进行比较。
如何强制 quarkus 使用 UTC 时区?
你试过在执行你的 jar 时通过 -Duser.timezone=UTC
吗?
Quarkus 应用只是一个标准的 Java 应用。
另一种选择是通过创建观察启动事件的 CDI bean 直接在您的应用程序中进行设置:
@Singleton
public class TimezoneSettings {
public void setTimezone(@Observes StartupEvent startupEvent) {
System.setProperty("user.timezone", "UTC");
}
}
不过,我只是不完全确定您的申请是否足够早。您将不得不尝试一下。
此解决方案也适用于 quarkus 开发模式:
import javax.ws.rs.core.Application;
import java.util.TimeZone;
public class YourApplication extends Application {
public YourApplication() {
super();
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
}
如果使用休眠:https://quarkus.io/guides/all-config
quarkus.hibernate-orm.jdbc.timezone=UTC