在JVM级别上重新定义Locale的日期时间格式

时间:2017-02-13 11:50:45

标签: java formatting jvm locale

我们有一个系统根据用户选择的区域设置显示日期。客户要求将区域设置的日期格式设置为与en_US格式类似。 问题是无法执行代码更改。

有没有办法在JVM级别更改时区的日期格式?也许类似于IANA timzezone change TZUpdater

谢谢。

编辑:这不重复,评论中的链接不相似。我不想设置默认的本地,我想将新西兰英语日期的日期格式映射为类似于美国英语日期格式的日期格式。

1 个答案:

答案 0 :(得分:3)

给定语言环境的日期格式是从bot.dialog('/firstRun', [firstRun1]) function firstRun1(session) { session.replaceDialog('/') } bot.dialog('/', new builder.IntentDialog() .matches(/wishlist/, '/wishlist') .matches(/exclusive/, '/exclusive') .onDefault('/runCampaign') ) bot.dialog('/wishlist', (session, args) => { session.endDialog('Add to wishlist') }) bot.dialog('/exclusive', (session, args) => { session.endDialog('Exclusive') }) bot.dialog('/runCampaign', [runCampaign1]) function runCampaign1(session) { session.send('default') } Resource Bundle加载的。 sun.text.resources.FormatData语言环境的资源嵌入在en_*中,即存在于引导程序类路径中。

要覆盖给定语言环境的资源,您必须以某种方式替换相应的资源包。有几种方法可以做到这一点,例如:

  1. 创建一个空文件rt.jar,将其放入目录或JAR中,该JAR使用sun/text/resources/en/FormatData_en_NZ.class JVM选项预先引导类路径。
  2. 创建Java Agent,在课程加载期间注册ClassFileTransformer以修改-Xbootclasspath/p:<dir>班级数据。
  3. 直接在FormatData_en_NZ(不推荐)中替换或删除sun/text/resources/en/FormatData_en_NZ.class文件。