Java错误时区

Java错误时区,java,timezone,soapui,Java,Timezone,Soapui,从下面可以看出,系统时间和SoapUI的时间值是不同的 SoapUI使用JRE时间,这就是为什么它应该是Java本身的一个bug,因为;下面的代码也给出了:委内瑞拉时间 String tzn = TimeZone.getDefault().getDisplayName(); System.out.println(tzn); 我尝试过但失败的地方: 玩regedit并更改时区,然后将其恢复到正确状态 在控制面板/Java/JRE设置/运行时参数中给出-Duser.timezone=“Euro

从下面可以看出,系统时间和SoapUI的时间值是不同的

SoapUI使用JRE时间,这就是为什么它应该是Java本身的一个bug,因为;下面的代码也给出了:
委内瑞拉时间

String tzn = TimeZone.getDefault().getDisplayName();
System.out.println(tzn);
我尝试过但失败的地方:

  • 玩regedit并更改时区,然后将其恢复到正确状态
  • 在控制面板/Java/JRE设置/运行时参数中给出
    -Duser.timezone=“Europe/伊斯坦布尔”
    ,或在
    Java\u OPTS
    变量中给出相同的参数
  • 更改时间或时区并将其取回

我检查了这一点,当然,以编程方式更正时区是可行的,但我需要更正SoapUI的时区,这会影响自动测试结果。因为测试取决于时间。

我花了好几天的时间努力解决这个问题。我真的不知道为什么最合理的两种方法不能正常工作:

  • 创建值为:
    -Duser.timezone=“Turkey”
  • 从命令行传递vm参数
最后我放弃了,为每个特定的程序设置了这个参数,为了能够对SoapUI执行此操作,请转到
SoapUI主路径/bin
文件夹,右键单击
SoapUI pro.bat
并选择编辑。(如果您使用的是社区版本,则bat文件的名称将不同)


然后转到以set
JAVA\u OPTS=-Xms128m…
开头的第29行,并插入时区参数:
-Duser.timezone=“Turkey”
。现在执行bat文件,它将开始正常工作

那么,当您完全独立于SoapUI运行测试Java程序时,您看到问题了吗?如果是这样的话,我看不出SoapUI与这个问题有什么关系。不,不仅仅是Java,我还运行Soap请求、Http请求和Groovy代码。还有一些情况需要跟踪SoapUI日志。您确定欧洲/土耳其是定义的时区吗?你能试着把它和欧洲/伊斯坦布尔联系起来吗?根据这篇文章,欧洲/土耳其没有定义。ÖmerFarukAlmalı你能澄清一下你对上述问题的回答吗?让我再声明一下:在同一个系统上,如果你将上面的两行java代码(打印默认时区的代码)放入一个独立的程序中,该程序会输出委内瑞拉时间还是土耳其时间?@bhdrkn我试过欧洲/伊斯坦布尔。我在问题中打错了,它不工作。这不仅仅是SoapUI的问题,而是JRE/JVM的问题(在我的例子中是6)。我们的应用程序与土耳其的时区有相同的问题。你的解决方案对我有效!