我的输入字符串日期如下:
String date = "1/13/2012";
我得到的月份如下:
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Date convertedDate = dateFormat.parse(date);
String month = new SimpleDateFormat("MM").format(convertedDate);
但是,如何获取给定String日期中月份的最后一个日历日?
例如:对于字符串
"1/13/2012"
,输出必须为"1/31/2012"
。 最佳答案
Java 8及更高版本。
通过使用convertedDate.getMonth().length(convertedDate.isLeapYear())
,其中convertedDate
是LocalDate
的实例。
String date = "1/13/2012";
LocalDate convertedDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("M/d/yyyy"));
convertedDate = convertedDate.withDayOfMonth(
convertedDate.getMonth().length(convertedDate.isLeapYear()));
Java 7及更低版本。
通过使用
getActualMaximum
的java.util.Calendar
方法:String date = "1/13/2012";
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Date convertedDate = dateFormat.parse(date);
Calendar c = Calendar.getInstance();
c.setTime(convertedDate);
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));