将时区设置为 IST,但我仍然收到错误日期错误

Set timezone to IST, but I still get a wrong-date error

我想获取当前时间而不考虑系统日期。我在 netbeans 中使用 Glassfish 服务器和 derby。我尝试使用下面的代码根据 IST 获取当前日期:

DateFormat df = new SimpleDateFormat("yyyymmdd");
    df.setTimeZone(TimeZone.getTimeZone("ist"));
    String gmtTime = df.format(new java.util.Date().getTime());

    java.util.Date parsed = null;
    try {
        parsed = (java.util.Date) df.parse(gmtTime);
    } catch (ParseException ex) {
        Logger.getLogger(EmployeePanel.class.getName()).log(Level.SEVERE, null, ex);
    }
    java.sql.Date date = new java.sql.Date(parsed.getTime());

但我得到的是 2017-01-08 而不是 2017-08-08。

m 是分钟而不是月 (M)。正确的模式是:

SimpleDateFormat("yyyyMMdd");

模式定义区分大小写!

有关详细信息,请参阅 the javadoc of SimpleDateFormat