我正在使用YearMonth
的{{1}}对象,并希望在此对象中获取月份日期的最后一天。
joda.time
但我想要的是特定月份的最大日期?例如30或31。我怎么能得到它?
答案 0 :(得分:9)
DateTime有这个现成的功能。
DateTime dt = new DateTime();
System.out.println(dt.dayOfMonth().getMaximumValue());
但是如果你想要它用于YearMonth,那么将YearMonth转换为DateTime并按上述方式执行:
YearMonth ym = new YearMonth();
dt = ym.toDateTime(null);
System.out.println(dt.dayOfMonth().getMaximumValue());
答案 1 :(得分:0)
如果您想在Joda
中获得该月的最大日期,请使用LocalDate
例如:
LocalDate endOfMonth = LocalDate.fromDateFields(new
Date()).dayOfMonth().withMaximumValue();
System.out.println(endOfMonth);
Out put:
2014-10-31
This operation is useful for obtaining a LocalDate on the last day of the month,
as month lengths vary.
LocalDate lastDayOfMonth = dt.dayOfMonth().withMaximumValue();
答案 2 :(得分:0)
从yearMonth创建一个DateTime对象:
DateTime datetime = new DateTime(yearMonth.get(DateTimeFieldType.year()), yearMonth.get(DateTimeFieldType.monthOfYear()),1,0,0);
System.out.println(datetime.dayOfMonth().getMaximumValue());