您将如何使用 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 一样的“物理”日期时间类型
。这有点像从整数和浮点类型转换,你必须小心。
关于java - 下个月的第一天使用 java Joda-Time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786169/