格林威治标准时间格式为格林威治标准时间+01:00时,会额外增加一小时

时间:2015-03-28 09:44:01

标签: java locale jodatime simpledateformat

我面临的问题是,只有在格林尼治标准时间+01:00格式化后才能加入一小时。

以下是我的表现:

private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                       

    try {
        // Change Start date according to the Locale time
        formattor.setTimeZone(TimeZone.getTimeZone("GMT"));
        date1 = formattor.parse("2015-03-26 11:17:41");
        formattor.setTimeZone(TimeZone.getDefault());

        String start = formattor.format(date1);

        // Change End date according to the Locale time
        formattor.setTimeZone(TimeZone.getTimeZone("GMT"));
        date1 = formattor.parse("2015-03-26 13:17:00");
        formattor.setTimeZone(TimeZone.getDefault());

        String end = formattor.format(date1);

        System.out.println(start + " - " + end);
    } catch (ParseException e) {
        e.printStackTrace();
    }

输出:

2015-03-26 12:17:41 - 2015-03-26 14:17:00

我和Joda-Time面临同样的问题。

我已使用GMT+01:00, West Africa Standard Time

对其进行了测试

1 个答案:

答案 0 :(得分:0)

这非常明显,因为你的getDefault()会将时区设为GMT + 01:00,因此你会看到同样的情况。如果这不是您所期望的,请重新构思问题。