我有一個日曆對象,它在UTC時區。我想將日曆對象中的日期和時間轉換爲PST,同時牢記所有的DST。我期待寫一個輔助函數具有以下簽名:日曆對象時區轉換
private Calendar getPSTTime(Calendar utcTime)
{
}
我有一個日曆對象,它在UTC時區。我想將日曆對象中的日期和時間轉換爲PST,同時牢記所有的DST。我期待寫一個輔助函數具有以下簽名:日曆對象時區轉換
private Calendar getPSTTime(Calendar utcTime)
{
}
private Calendar getPSTTime(Calendar utcTime)
{
TimeZone americaPacific = TimeZone.getTimeZone("America/Los_Angeles");
Calendar pacificTime = Calendar.getInstance(americaPacific);
pacificTime.setTime(utcTime.getTime());
return pacificTime;
}
FYI:所有可用的時區字符串標識符是由法TimeZone.getAvailableIDs()
返回。這就是我從"America/Los_Angeles"
。
這是我嘗試的第一件事。這樣做只會設置UTC時間。它不會將時間轉換爲PST。謝謝。 – supreethmurthy 2013-02-09 00:36:15
@ user2055876試試'TimeZone.getTimeZone(「PST」);'。此外,你是如何檢查這種方法不起作用的(對我而言,它工作正常)?常見的錯誤是人們通過打印'calendar.getTime()'來檢查它,該日曆基於存儲在日曆中的毫秒返回'new Date(milis)',忘記'Date'使用默認語言環境。要檢查日曆是否正確轉換,直接從它獲取值,如'calendar.get(Calendar.HOUR_OF_DAY);'。 – Pshemo 2013-02-09 01:21:41
在Java中時間事件被存儲爲這個事件和1970年1月1日之間的毫秒數,00:00:00 GMT(例如,如果這些事發生在倫敦)
所以每當我們談論的日期和時間在Java中,由java.util.Date或java.util.Calendar表示,我們總是討論絕對編號,而不考慮時區。
時區只有在我們嘗試以字符串形式輸出日期/時間時纔有意義。在我的頭頂,我可以記得做這件事的方法有兩種:
實在是在Java的「時區轉換」沒有這樣的事,但時區特定的格式。
但是,如果你想使事情真的令人困惑,您可以添加「修正」到您的日曆時間值,這樣它會返回字段的值,如果它是在PST時區:
private Calendar getPSTTime(Calendar utcTime)
{
TimeZone pstZ = TimeZone.getTimeZone("America/Los_Angeles");
long offset = pstZ.getOffset(utcTime.getTime());
Calendar pacificTime = Calendar.getInstance();
pacificTime.setTimeInMillis(utcTime.getTimeInMillis()-offset);
return pacificTime;
}
有沒有標題中需要說「Java編程語言」;你已經包含了一個標籤,而標籤系統在這裏工作得很好,沒有任何幫助。您可以使用標籤提供的任何信息在主題中都不是必需的,您可以使用該空間來更好地描述您的問題。 (你通常應該實際上*提出一個問題*而不是僅僅指出一個目標,並且顯示你在實際解決問題時已經做出了一些努力。) – 2013-02-08 23:54:05
也是一個[如何使用Java處理日曆時區的問題?]( http://stackoverflow.com/q/230126/62576),[將UTC時間轉換爲Java中的本地時區](http://stackoverflow.com/questions/3010035/converting-a-utc-time-to - 在Java本地時區)?,[從UTC日期轉換爲Java到PST](http://stackoverflow.com/questions/6075912/converting-date-from-utc-to-pst- in-java?rq = 1)等等。在發佈問題之前,請至少進行一次基本搜索,以查看問題是否已被問及並回答。我鏈接的部分鏈接位於右側的「相關」列表中。謝謝。 – 2013-02-08 23:57:28
我確實在尋找現有的帖子。它沒有幫助我。我的問題是具體的。另外,我不知道我能更好地描述這個功能。我已經給了方法簽名。編寫java代碼的人應該明白我想要實現的目標。 – supreethmurthy 2013-02-09 00:34:56