我有一个Date
来自今年夏天夏令时的 Java。例如:
2009 年 6 月 1 日上午 06:00 PDT
我的问题是,如何将此日期显示为我的本地时区和当前的夏令时模式(在我的情况下为太平洋标准时间)?
太平洋标准时间 2009 年 6 月 1 日上午 05:00
Java 的Date.toString()
并以原始夏令时模式SimpleDateFormat
显示日期。例子:
System.out.println(new Date(1243861200000L));
输出:
2009 年 6 月 1 日星期一 06:00:00 PDT
DateFormat dateFormat = new SimpleDateFormat("MMM dd, yyyy hh:mm aa zzz");
dateFormat.setTimeZone(TimeZone.getTimeZone("PST"));
System.out.println(dateFormat.format(new Date(1243861200000L)));
输出:
2009 年 6 月 1 日上午 06:00 PDT
我真正想看到的是太平洋标准时间上午 5:00(相当于太平洋夏令时间上午 6:00)。有没有办法强制它使用另一种夏令时模式?
跟进:顺便说一下,这是 Windows XP 的行为。在 6 月 1 日上午 6 点创建的文件(通过资源管理器、命令提示符等)将在冬季显示为 6 月 1 日上午 5 点。