2013-02-15 29 views
2

從下面可以看出,系統時間和SoapUI的時間值是不同的。Java錯誤時區

system and soapui time

了SoapUI使用JRE的時間,這就是爲什麼它應該是Java的,因爲它本身的缺陷; 也低於代碼給出:Venezuela Time

String tzn = TimeZone.getDefault().getDisplayName(); 
System.out.println(tzn); 

我已經嘗試和失敗:

  • 用regedit並改變時區播放然後拿回來糾正。
  • 在控制面板/ Java/JRE設置/運行時參數中給出-Duser.timezone="Europe/Istanbul"或在JAVA_OPTS變量中給出相同的參數。
  • 更改時間或時區並將其恢復。

我肯定地檢查了這question,以編程方式更正時區是可行的,但我需要更正影響自動化測試結果的SoapUI時區。因爲測試是時間依賴性的。

+3

因此,當您僅僅完全獨立於SoapUI運行測試Java程序時,您會看到問題?如果是這樣的話,我看不出SoapUI與這個問題有什麼關係。 – 2013-02-15 14:34:51

+0

不僅是Java,我正在運行Soap請求,Http請求,Groovy代碼。還有一些情況需要跟蹤SoapUI日誌。 – 2013-02-15 14:40:17

+0

你確定歐洲/土耳其是一個確定的時區嗎?你可以嘗試設置與歐洲/伊斯坦布爾?根據這篇文章http://tutorials.jenkov.com/java-date-time/java-util-timezone.html歐洲/土耳其沒有定義。 – bhdrkn 2013-02-15 15:24:36

回答

2

我真的很努力地解決這個問題,幾天。我真的不知道爲什麼最合理的兩種方法都不能正常工作,其中:

  • 創建具有的價值JAVA_OPTS系統變量:-Duser.timezone="Turkey"
  • 從命令行傳遞VM參數。

最後我放棄了,設置此參數爲每個特定的方案,能夠爲了SoapUI做到這一點,去SoapUI Home Path/bin文件夾,單擊鼠標右鍵soapui-pro.bat並選擇編輯。 (如果您使用的是社區版本,則bat文件的名稱將會不同)

然後轉到第29行,該行以集合JAVA_OPTS=-Xms128m...開頭,並插入時區參數:-Duser.timezone="Turkey"。現在執行bat文件,它將開始正常工作!

+0

這不是SoapUI的問題,而是使用JRE/JVM(6在我的情況)。我們的應用程序與土耳其時區有同樣的問題。你的解決方案爲我工作! – 2015-11-26 13:26:27