kyr*_*pav 2 java spring calendar date simpledateformat
我有一个初始设置为2019-11-01的日历,我想使用以下方法将其设置为月份的第一个日期和最后一个日期:
cal.set(int field,int value)
Run Code Online (Sandbox Code Playgroud)
对于该字段,我可以使用以下任一方法:
Calendar.DATE or Calendar.DAY_OF_MONTH
Run Code Online (Sandbox Code Playgroud)
但是sysout上的系统显示它正在设置Calendar.YEAR而不是
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));
cal.set(cal.get(Calendar.DAY_OF_MONTH),1);
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));
cal.set(cal.get(Calendar.DAY_OF_MONTH),cal.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()));
Run Code Online (Sandbox Code Playgroud)
Sysout:
2019-11-01
0001-11-01
0030-11-01
您可以使用Java-8现代日期时间API LocalDate,停止使用旧版Calendar或util.Date
LocalDate date = LocalDate.parse("2019-11-01");
System.out.println(date.with(TemporalAdjusters.firstDayOfMonth())); //2019-11-01
System.out.println(date.with(TemporalAdjusters.lastDayOfMonth())); //2019-11-30
Run Code Online (Sandbox Code Playgroud)