Java 获取当月一号

在日常开发中,我们经常需要获取当月的第一天。这样的需求可能涉及到统计、报表等应用场景。那么在Java中,如何获取当月的第一天呢?接下来,我们将介绍一些方法和代码示例。

方法一:使用Calendar类实现

Java提供了Calendar类来操作日期和时间。我们可以利用Calendar类来获取当月的第一天。下面是一个示例代码:

import java.util.Calendar;

public class FirstDayOfMonth {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, 1);
        
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1; // 月份从0开始,所以要加1
        int day = cal.get(Calendar.DAY_OF_MONTH);
        
        System.out.println("当月的第一天是:" + year + "-" + month + "-" + day);
    }
}

上面的代码首先获取当前日期的Calendar实例,然后将日期设置为当月的第一天,最后获取年、月、日的值并输出。这样就可以得到当月的第一天的日期。

方法二:使用LocalDate类实现

Java 8引入了新的日期API,包括LocalDate类,可以更方便地操作日期。下面是一个使用LocalDate类获取当月第一天的示例代码:

import java.time.LocalDate;

public class FirstDayOfMonth {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        LocalDate firstDayOfMonth = today.withDayOfMonth(1);
        
        int year = firstDayOfMonth.getYear();
        int month = firstDayOfMonth.getMonthValue();
        int day = firstDayOfMonth.getDayOfMonth();
        
        System.out.println("当月的第一天是:" + year + "-" + month + "-" + day);
    }
}

在上面的代码中,我们首先获取当前日期的LocalDate实例,然后调用withDayOfMonth(1)方法来设置为当月的第一天,最后获取年、月、日的值并输出。

关系图

下面是一个关系图,展示了Calendar类和LocalDate类的关系:

erDiagram
    Calendar ||--|> Date
    LocalDate ||--|> Temporal

类图

下面是一个类图,展示了FirstDayOfMonth类及其依赖关系:

classDiagram
    class FirstDayOfMonth {
        <<public>>
        + main(String[] args)
    }
    FirstDayOfMonth ..> Calendar
    FirstDayOfMonth ..> LocalDate

通过上面的示例代码和解释,我们可以在Java中轻松获取当月的第一天。无论是使用Calendar类还是LocalDate类,都可以快速实现这一需求。希望本文对你有所帮助!