Java 日历:正确设置时区

Java 日历:正确设置时区,java,timezone,java.util.calendar,Java,Timezone,Java.util.calendar,我会为日历实例设置时区,但我不能这样做。 我试过: DateFormat dateFormat = new SimpleDateFormat("dd//MM/yyyy HH:mm:ss"); Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/Rosario")); System.out.println(cal.getTime()); (我随机使用了“America/Rosario”),但我总是获取当前时间。正确的

我会为日历实例设置时区,但我不能这样做。 我试过:

DateFormat dateFormat = new SimpleDateFormat("dd//MM/yyyy HH:mm:ss");
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/Rosario"));
System.out.println(cal.getTime());

(我随机使用了“America/Rosario”),但我总是获取当前时间。正确的模式是什么?

您应该在
DateFormat
对象中设置时区:

DateFormat df = new SimpleDateFormat("dd//MM/yyyy HH:mm:ss", Locale.getDefault());
df.setTimeZone(TimeZone.getTimeZone("America/Rosario"));

// Will print the formatted date-time in the America/Rosario timezone  
System.out.println(df.format(new Date()));

PS:仅供参考,我没有检查“America/Rosario”是否为有效时区我不需要使用Date()对象,但需要使用Calendar。也可以使用
Calendar cal=Calendar.getInstance()现场演示:第一个使用
美国/Rosario时区
,第二个使用默认时区。看看时间的不同。