我想在本地應用程序中更改本地時區以使用UTC的時區。代替當地時間,我需要得到UTC時間,這與喬達日期時間非常吻合。但問題是,當我在窗口上更改系統時間時,例如在時鐘上減去1小時,UTC時間返回一小時後返回值。所以我認爲UTC時間是根據系統時間計算的。例如:系統時間爲PDT 3:00,UTC顯示爲10:00。當我將系統時間更改爲PDT 4:00時,UTC是11:00。儘管系統時間改變了UTC,但仍應顯示當前UTC時間,而不是基於系統時間。看起來偏移量是根據系統時間計算得到UTC的。在不使用系統時間的情況下在java中獲取UTC
DateTime mypdt = new DateTime();
DateTime myutc = new DateTime(DateTimeZone.UTC);
System.out.println("mypdt--> "+mypdt);
System.out.println("myutc--> "+myutc);
輸出是
mypdt--> 2015-07-21T03:00:14.778-07:00
myutc--> 2015-07-21T10:00:14.828Z
我修改了系統時間4:00我的Windows機器上,現在輸出
mypdt--> 2015-07-21T04:00:14.778-07:00
myutc--> 2015-07-21T11:00:14.828Z
但實際UTC仍然是10:00。我如何得到UTC不會使用系統時間,因爲系統時鐘將在DST期間重置,這是我正在嘗試解決的問題。
是的,我同意。但我需要有一個標準時間,不會根據系統時間或本地時間或DST進行更改。我的應用程序應該依靠這個標準時間進行計算。可能嗎? – ASB
@ASB。你可以從外部來源獲得時間(見Tony Vu的回答)。但比你的應用程序將取決於互聯網連接。但除此之外,沒有。 Joda時間API用於表示日期和時間,並用它們進行計算,而不是用於獲取系統獨立時間。 – Hoopje