簡體   English   中英

Java SimpleDateFormat更改為不同的TimeZone

[英]Java SimpleDateFormat change to different TimeZone

我們在應用程序的功能中使用了SimpleDateFormat userDateFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00")但尚未設置時區

每次創建userDateFormat時,我都會使用

System.out.println("userDateFormat timezone: " + ((SimpleDateFormat)userDateFormat).getTimeZone().toString()); 

獲取userDateFormat的TimeZone信息。

在應用程序以不同的函數調用運行(服務器不關閉)的過程中,我們獲得了不同的時區信息:

userDateFormat timezone: sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]

userDateFormat timezone: sun.util.calendar.ZoneInfo[id="Europe/Copenhagen",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=133,lastRule=java.util.SimpleTimeZone[id=Europe/Copenhagen,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]

我不知道為什么在此單個服務器中更改了時區。

我們還有另一個SimpleDateFormat對象,該對象將setTimeZone設置為'GMT'(在所有項目中僅設置一次),但是從結果來看,它似乎使用時區'CET(UTC + 1)'。 是否有任何服務器設置會導致jdk時區混亂?

謝謝。

正如bsiamionau所說,我們有調用TimeZone.setDefault的代碼,該代碼更改了默認時區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM