这是我的代码段。我的当地时区是“亚洲/孟买”。
SimpleDateFormat isoFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm a");
Date date1 = isoFormat.parse("03/01/2016 09:01 AM");
isoFormat.setTimeZone(TimeZone.getTimeZone("Asia/Mumbai"));
isoFormat.applyPattern("dd MMM yyyy HH:mm:ss z");
System.out.println("Current Date and Time in IST time zone: " + isoFormat.format(date1));
但是在输出中,我得到:
IST时区的当前日期和时间:2016年3月1日格林尼治标准时间
谁能说出为什么覆盖时区(也是我的本地时区)可以将其更改为GMT吗?
尽管对于JST或SGT来说,相同的代码也可以正常工作。
isoFormat.setTimeZone(TimeZone.getTimeZone("Asia/Singapore"));
isoFormat.applyPattern("dd MMM yyyy HH:mm:ss z");
System.out.println("Current Date and Time in SGT time zone: " + isoFormat.format(date1));
isoFormat.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
isoFormat.applyPattern("dd MMM yyyy HH:mm:ss z");
System.out.println("Current Date and Time in JST time zone: " + isoFormat.format(date1));
输出:
SGT时区的当前日期和时间:2016年3月1日SGT
JST时区的当前日期和时间:JST 2016年3月1日12:31:00
最佳答案
尝试以下代码:
isoFormat.setTimeZone(TimeZone.getTimeZone(“ Asia / Kolkata”));