我有一个要部署在具有太平洋时区设置的服务器上的 web 应用程序。我的应用程序能够在计算中处理 PST<->PDT 日期转换,但我在处理缺失小时/无效时间时遇到问题,如下所述。
无效时间 - 由于时钟的向前自动调整,在 3 月的第二个星期日凌晨 02:00 至凌晨 03:00 之间,太平洋时区不存在此时间。
因此,每当输入像 2013 年 3 月 10 日 02:00:00 这样的日期时,系统会自动将其转换为 2013 年 3 月 10 日 03:00:00。我理解这种情况正在发生,因为太平洋时区实际上不存在这个时间。
但根据要求,服务器时区不能更改(例如格林威治标准时间),仍然需要捕获上述时间(2013 年 3 月 10 日 02:00:00)。此外,服务器自动调整时钟设置也无法更改,因此我必须更改应用程序代码以支持上述。
在此先感谢您的帮助。
添加代码以进行更多说明:
SimpleDateFormat sdf = new SimpleDateFormat("ddMMyy HH:mm:ss");
//sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = sdf.parse("100313 02:00:00");
Date date1 = sdf.parse("100313 03:00:00");
System.out.println(sdf.format(date));
System.out.println(sdf.format(date1));
Output:
100313 03:00:00
100313 03:00:00
If i uncomment commented line then output:
100313 02:00:00
100313 03:00:00