添加秒时,日期/时间在java日历中更改为当前服务器时间

时间:2012-11-30 17:48:37

标签: java calendar date-arithmetic

我从收到的字符串日期创建一个日历对象。

        Calendar cal = Calendar.getInstance();
    String date = "example Mon, 22 Oct 2012 23:58:31 GMT";
    SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
    sdf.setTimeZone (TimeZone.getTimeZone ("PST"));
    try {
        cal.setTime(sdf.parse(date));  
    } catch (ParseException e) {
        e.printStackTrace();

    }
   System.out.println("date "+sdf.format(cal.getTime()));

此日期将gmt时间转换并打印到pst没有问题。

然后我遍历一个元素对象的数组并添加秒

int offset = element.getSeconds;
cal.add(Calendar.SECOND, offset);
System.out.println("times cal offset: " + cal.getTime());

此cal现在打印服务器时间(东部时间),而不是上面打印的转换后的gmt。当添加秒时,是否会绕过从字符串gmt日期创建的cal?

谢谢!

1 个答案:

答案 0 :(得分:3)

这是因为您不会将SDF与设定的GMT时区一起用于第二次打印。