首页 > 解决方案 > 将字符串转换为日历 - 日历是错误的日期

问题描述

试图将字符串“2019-08-21 9:04:08”解析为日历对象。

我从 calender.getTime() 得到结果 Mon Dec 31 09:04:08 GMT 2018

这是我解析它的方式

Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD hh:mm:ss");
    try {
        cal.setTime(sdf.parse("2019-08-21 9:04:08"));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }// all done
    return cal;
}

标签: java

解决方案


您没有使用正确的解析器格式。您需要的是"yyyy-MM-dd hh:mm:ss". 格式"YYYY"是基于周的日历年,这不是您想要的。正如@rajah9 指出的那样,文档可以进一步指导SimpleDateFormat.


推荐阅读