我不確定我是否完全理解您的問題,但這裏是我盡最大努力爲您解答。
我假設你有一個日期作爲UTC時區中的字符串,你希望日期作爲系統(或本地)時區。
要做到這一點,只需將字符串" UTC"
添加到您的時間字符串,並將日期格式化程序模式更改爲「yyyy-MM-dd HH:mm:ss Z」。這裏Z
是RFC 822 time zone。您也可以使用z
,這是General time zone。
所以,你的代碼將變爲:然後
String timezoneOffset = " UTC";
dateFormatterLocal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
dateFormatterLocal.setTimeZone(TimeZone.getTimeZone("America/New York"));
for (int i = 0; i < list.length; i++) {
timeStampArrayList.add(dateFormatterLocal.parse(list[i] + timezoneOffset));
}
這應該解析日期從提供的時區字符串轉換格式的時區。
你可以做到這一點,以獲得系統當前時區
TimeZone timeZone = Calendar.getInstance().getTimeZone();
System.out.println(timeZone.getDisplayName(false, TimeZone.LONG));
這對我打印New Zealand Standard Time
- 這是當前的時區。
您還可以更改TimeZone.LONG
到TimeZone.SHORT
得到簡化版本即我得到NZST
你也應該閱讀this question and answer有關顯示日期
我不知道我理解的問題(但有什麼新;))。如果您不想指定時區,那麼您需要以格式/「String」值包含時區。如果您無法更改原始值,則可以在分析它之前將時區值附加到「String」的末尾...... – MadProgrammer