java JVx中的时区支持

3ks5zfa0  于 2023-04-28  发布在  Java
关注(0)|答案(2)|浏览(180)

我有一个新的应用程序的要求。应用程序应显示不同时区的日期/时间值。存储的日期始终相同,但不同时区的不同客户端应看到本地日期/时间。
但并非所有日期/时间值都应本地化。由于管理屏幕和过滤,一些日期值应该固定为特定的时区。
我如何用JVX解决这个问题?
我试图搜索文档,但没有找到任何有用的东西。只知道有个设置时区的参数。但是没有描述。

46qrfjad

46qrfjad1#

在jvx中使用了不同的时区设置。
服务器使用java默认逻辑和TimeZone.getDefault()。如果应用程序服务器以GMT/UTC启动,则所有日期/时间将与该时区一起存储在数据库中。服务器时区可以在应用程序服务器启动时设置(例如java -Duser.timezone=UTC)。默认情况下,它将是服务器的系统时区。
默认客户端时区是jvx使用的客户端设备的时区(浏览器或移动终端的时区)。如前答复所述,在适用时可予以否决。xml或在自己的应用程序中使用setTimeZoneId(String pTimeZoneId)编程。如果在客户端上设置/配置了服务器时区,则所有客户端将显示与数据库中存储的相同的日期/时间。
也可以在不同时区的不同编辑器中显示一个日期/时间。下面的示例将以UTC和CET显示DATE_COLUMN列。两者都可以编辑,并将始终显示正确的日期/时间在配置的时区。

// Set UTC time zone
UIDateCellEditor dceTimeZoneUTC = new UIDateCellEditor(DateUtil.getDefaultDateTimeShortPattern());
dceTimeZoneUTC.setTimeZone(TimeZone.getTimeZone("UTC"));

// Set CET time zone
UIDateCellEditor dceTimeZoneCET = new UIDateCellEditor(DateUtil.getDefaultDateTimeShortPattern());
dceTimeZoneUTC.setTimeZone(TimeZone.getTimeZone("CET"));

// Create UIEditor object with UTC time zone
UIEditor editorUTC = new UIEditor();
editorUTC.setDataRow(mdbDateTest);
editorUTC.setColumnName("DATE_COLUMN_NAME");
editorUTC.setCellEditor(dceTimeZoneUTC);

// Create UIEditor object with CET time zone
UIEditor editorCET = new UIEditor();
editorCET.setDataRow(mdbDateTest);
editorCET.setColumnName("DATE_COLUMN_NAME");
editorCET.setCellEditor(dceTimeZoneCET);
gupuwyp2

gupuwyp22#

JVx完全支持您的需求。它具有内置的时区支持。
有一个关于JVx时区支持的票证:General timezone support
可以在应用程序中设置时区。如文档中所述的XML(e.例如<Application.timeZone>UTC</Application.timeZone>
要获取默认时区,请读取连接属性:getConnection().getProperty(IConnectionConstants.PREFIX_SERVER + IConnectionConstants.PREFIX_SYSPROP + "user.timezone");使用默认时区,可以显示存储的日期。

相关问题