下个月的第一天使用Java Joda-Time

您将如何用Joda-Time中的org.joda.time包重写下面的方法,该方法返回下个月的第一天?

public static Date firstDayOfNextMonth() {

Calendar nowCal = Calendar.getInstance();

int month = nowCal.get(Calendar.MONTH) + 1;

int year = nowCal.get(Calendar.YEAR);

Calendar cal = Calendar.getInstance();

cal.clear();

cal.set(Calendar.YEAR, year);

cal.set(Calendar.MONTH, month);

cal.set(Calendar.DAY_OF_MONTH, 1);

Date dueDate = new Date(cal.getTimeInMillis());

return dueDate;

}

回答:

   LocalDate today = new LocalDate();

LocalDate d1 = today.plusMonths(1).withDayOfMonth(1);

变得更容易和更清洁,不是吗?:-)

更新:如果要返回日期:

return new Date(d1.toDateTimeAtStartOfDay().getMillis());

但我强烈建议您避免将纯DATE类型(即日历中的一天,没有时间信息)与DATETIME类型混合使用,特别是与“物理”日期时间类型混合使用,就像可怕的那样java.util.Date。这有点像将from转换为integer和float类型,您必须小心。

以上是 下个月的第一天使用Java Joda-Time 的全部内容, 来源链接: utcz.com/qa/399072.html

回到顶部