我有一个给定的日期:
01/10/2017(mm/dd/yyyy)
Calendar c = c.getInstance();
c.setTime(date);
现在指向我使用以下代码的月份的最后一天:
c.set(Calendar.Date, c.getActualMaximum(Calendar.Date));
Expected Output : 01/31/2017
Original Output : 02/01/2017
我没有得到预期的输出。它在下个月的第一天返回我。
谁能帮帮我?
您最好在此处使用 Java 8 的新日期时间功能:
LocalDate date = LocalDate.of(2000, Month.OCTOBER, 15);
LocalDate lastOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
System.out.printf("last day of Month: %s%n", lastOfMonth );
是的,理论上您也可以使用 Calendar 对象并自己执行各种低级操作。但很有可能:你会弄错......好吧,除非你看here并按照那里的建议进行操作。
但正如 Basil 正确指出的那样:310 项目非常接近 java.time(因为后者旨在匹配前者);和 310 可以“移植”back到Java7。因此,如果您需要在多个地方处理日期,我会仔细研究:使用“合理的”日期/时间库让您的生活更轻松。