Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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 重新定义区域设置’;s日期时间格式,在JVM级别_Java_Formatting_Jvm_Locale - Fatal编程技术网

Java 重新定义区域设置’;s日期时间格式,在JVM级别

Java 重新定义区域设置’;s日期时间格式,在JVM级别,java,formatting,jvm,locale,Java,Formatting,Jvm,Locale,我们有一个系统,根据用户选择的区域设置显示日期。客户要求区域设置的日期格式类似于en_US格式。 问题是不可能执行代码更改 有没有办法在JVM级别更改时区的日期格式?也许是类似的 多谢各位 编辑:这不是重复,评论中的链接也不相似。我不想设置默认的本地日期,我想将新西兰英语日期的日期格式映射为类似于美国英语日期格式的日期格式。从sun.text.resources.FormatData资源包加载给定区域设置的日期格式。en.*区域设置的资源嵌入在rt.jar中,即存在于引导类路径中 要覆盖给定区域

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

有没有办法在JVM级别更改时区的日期格式?也许是类似的

多谢各位


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

sun.text.resources.FormatData
资源包加载给定区域设置的日期格式。
en.*
区域设置的资源嵌入在
rt.jar
中,即存在于引导类路径中

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

  • 创建一个空文件
    sun/text/resources/en/FormatData\u en_NZ.class
    ,将其放入目录或JAR中,使用
    -Xbootclasspath/p:
    JVM选项将其置于引导类路径之前
  • 创建一个注册,以在类加载期间修改
    FormatData\u en\u NZ
    类数据
  • 直接在
    rt.jar
    中替换或删除
    sun/text/resources/en/FormatData\u en_NZ.class
    文件(不推荐)

  • 请看这些问题:,可能重复的否,它是不重复的,上面的链接是不相似的。我不想设置默认的本地日期,我想将新西兰英语日期的日期格式映射为类似于美国英语日期格式的日期格式。您能举个例子吗?日期格式以特定于语言环境的方式表示“公共”数据(如时间戳)。你是怎么“映射”的?!当然,当您在新西兰英语地区获得日期格式时,它将显示为2017年2月9日,在美国英语格式中,它将显示为2017年2月9日。客户希望使用新西兰英语地区的用户将日期显示为2017年2月9日。格式由JVM根据所选的区域设置确定。谢谢。你能补充一些关于第二种方法的细节吗?第一种和第三种方法不适用,因为我们在生产环境中有许多应用程序实例,并且我们不控制生产环境的部署和维护。@yaroslavprokipchyn“不控制部署和维护”是什么意思?您可以更改用于启动应用程序的JVM参数吗?理论上,我可以请求它。但是许多管理员和其他人会对在发布中添加新步骤感到非常不高兴。谢谢你的回复