在创建 Date 对象期间我遇到了一个奇怪的问题。我有以下代码将日期的时区设置为 UTC。在解析语句之前,我看到 sdfDate 的时区为 UTC,但在解析语句之后,我看到 punchDate 具有值:Sat Mar 30 01:00:00 CET 2013,我相信这来自我的系统。但是我如何确保即使在解析之后时区也保持不变。
Date punchDate = null;
Date punchTime = null;
SimpleDateFormat sdfDate = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss");
try
{
sdfDate.setTimeZone(TimeZone.getTimeZone("UTC"));
sdfTime.setTimeZone(TimeZone.getTimeZone("UTC"));
punchDate = sdfDate.parse(arg1);
punchTime = sdfTime.parse(arg2);
}
catch (ParseException pe)
{
System.out.println("Parse exception " +pe.getMessage());
}
我的要求基本上是我需要从字符串输入创建一个日期对象,但时区应保持 UTC。