我需求量的是這樣的:Java的時區:爲什麼偏移需要
我節省了時間,在數據庫毫秒和timezone.For例子milisecond的時間長1223123123232
和時區爲Asia/Calcutta
。我必須將它轉換爲Africa/Asmara
時區。
long l = 1223123123232l;
TimeZone tz = TimeZone.getTimeZone("Asia/Calcutta");
long tzOff = tz.getOffset(l);
java.util.Date d = new Date(l-tzOff); // WHY THIS??
DateFormat df = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");
df.setTimeZone(TimeZone.getTimeZone("Africa/Asmara"));// required timezone
String s = df.format(d);
System.out.println(s);
要檢查我指這樣的:link
我的問題是:
- 如果時區是在不同的格式,只是時間表示(地理區域從GMT偏移量),爲什麼我是否需要從實際時間減去偏移時間
(l-tzOff)
? - 爲什麼我不能忽略保存在數據庫中的時區,只考慮我想轉換日期的時間?
喜歡的東西:
long l = 1223123123232l;
java.util.Date d = new Date(l);
DateFormat df = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");
df.setTimeZone(TimeZone.getTimeZone("Africa/Asmara"));// required timezone
String s = df.format(d);
System.out.println(s);
我的系統時區爲Asia/Calcutta
,我想一個日期在Africa/Bujumbura
時區轉換爲Europe/Vatican
timezone.The上面的代碼是不是在這種情況下工作?爲什麼這樣呢?
主席先生,我的默認時區是'亞洲/加爾各答'。我想將「利比亞」時區的日期轉換爲「非洲/布瓊布拉」。上面的代碼我粘貼的是沒有給出正確的結果? –
不可以。您應該使用我在答案開始處發佈的鏈接中提供的代碼示例。請參閱「在時區之間轉換日期」部分。 – JVerstry