下个月的第一天使用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