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

标签 java calendar jodatime

您将如何使用 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/

相关文章:

javascript - Karate API 测试 - 如何迭代读取多个 json 文件以用作单个场景的请求?

ios - UITableView 被自定义日历 View 覆盖

java - 重新格式化日期对象 (Java)

java - 如何使用 Java 日期时间 API 或 Joda-time 查找前 n 个星期日?

java - Jodatime 一天的开始和一天的结束

java - 框架监听器Java

java - 方法主体外的 java 类中的字段初始化

java - 更改圆弧半径

java - 面对日历对象的问题

java - 在 JSP scriptlet 中,如何访问从 Spring MVC ModelMap 传递的 java.util.Date 值?