SimpleDateFormat在java中返回一个奇怪的值

时间:2014-02-19 17:09:05

标签: java parsing date

我有一个以字符串格式存储的日期,根据以下约定yyyy-mm-dd,我想得到月份,所以这就是我正在做的事情

    String dateS = j.getString(key);
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");

    if ("null".equals(dateS))
        dateS = j.getString("created");

    try {
        cal.setTime(sdf.parse(dateS));
        System.out.println("parsed: " + sdf.parse(dateS));
        System.out.println("original: " + dateS);
        System.out.println("Month: " + cal.get(Calendar.MONTH));
    } catch (ParseException e) {
        // null, for now don't do anything, but this should never happen
    }

这是输出:

parsed: Sun Jan 19 00:02:00 EST 2014
original: 2014-02-19
Month: 0

正如您所看到的,它没有将其解析为正确的格式,我做错了什么?是新的SimpleDateFormat(“yyyy-mm-dd”);不是正确的方法吗?

1 个答案:

答案 0 :(得分:3)

请记住,'m'表示分钟,'M'表示月份

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html