Yun*_*une 1 java calendar simpledateformat
有谁知道为什么我得到下面的输出?我预计2012-12而不是2013-12
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR,2012);
cal.set(Calendar.MONTH,12-1);
cal.set(Calendar.DATE,30);
Date date=cal.getTime();
System.out.println(date);
String YYYY_MM=format.format(date);
System.out.println(YYYY_MM);
Run Code Online (Sandbox Code Playgroud)
OUTPUT
Sun Dec 30 18:30:52 KST 2012
2013-12
Run Code Online (Sandbox Code Playgroud)
预期
Sun Dec 30 18:30:52 KST 2012
2012-12
Run Code Online (Sandbox Code Playgroud)
您使用的日期格式器不正确.你可以这样试试,
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR,2012);
cal.set(Calendar.MONTH,12-1);
cal.set(Calendar.DATE,30);
Date date=cal.getTime();
System.out.println(date);
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM");
// Java SimpleDateFormat use `yyyy` (lowercase) not `YYYY`(uppercase)
String YYYY_MM=format.format(date);
System.out.println(YYYY_MM); //out put 2012-12
Run Code Online (Sandbox Code Playgroud)
出来给我
Sun Dec 30 15:20:08 IST 2012
2012-12
Run Code Online (Sandbox Code Playgroud)