我有一个以字符串格式存储的日期,根据以下约定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”);不是正确的方法吗?
答案 0 :(得分:3)
请记住,'m'表示分钟,'M'表示月份
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html