您的系统时区不同。输出显示IST-或印度标准时间,与PDT相差12.5h。该代码正在正确解析给定的日期(PDT(UTC -7))并打印出IST(UTC +
5h30)。
Java将日期存储为UTC日期。因此,当您解析PDT日期时,Java会将其转换为UTC并将其内部存储为UTC时间戳。在打印时,如果未指定时区,它将默认为系统时区,在您的情况下,该时区似乎是IST。
要指定确切的时区,请在SimpleDateFormat中指定它:
DateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zz yyyy");f.setTimeZone(TimeZone.getTimeZone("PDT"));Date date = f.parse("Tue Aug 23 20:00:03 PDT 2011");System.out.println("---date----" + f.format(date));


