Android SimpleDateFormat不识别夏令时



我试图解析在GMT给定的时间字符串与用户的时区的新字符串。SimpleDateFormat将时间解析为PST,而它应该是PDT。打印当前时间提供正确的时区。我有一种感觉,问题可能是使用日期,但我不确定该怎么办。

示例代码:

try {
        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a z", Locale.ENGLISH);
        Log.e("Current time", sdf.format(Calendar.getInstance().getTime()));
        sdf.applyPattern("HHmm z");
        Date date = sdf.parse("2137 GMT");
        sdf.applyPattern("hh:mm a z");
        Log.e("Parsed time", sdf.format(date));
    }catch (Exception e){ e.printStackTrace(); }

两个日志产生:

E/Current time﹕ 02:37 PM PDT
E/Parsed time﹕ 01:37 PM PST

任何帮助都将非常感激。

我终于找到了问题所在。默认情况下,日期对象被设置为1970年1月1日。日光节约时间在一月份不适用,所以它没有使用它。我所做的就是将一年中的哪一天添加到模式中,然后从日历中获取当前日期。

更新部分:

sdf.applyPattern("D HHmm z");
Date date = sdf.parse(sdf.getCalendar().get(Calendar.DAY_OF_YEAR)+" 0420 GMT");

正确调整夏令时

使用的日期为夏令时

相关内容

  • 没有找到相关文章

最新更新