欢迎访问宙启技术站
智能推送

Java日期函数使用指南:10个示例

发布时间:2023-08-18 23:28:41

Java中提供了很多日期和时间相关的函数和类,可以方便地进行日期的计算和格式化。下面是10个 Java 日期函数的用法示例。

1. 获取当前日期和时间

可以使用 java.util.Date 类来获取当前的日期和时间。示例代码如下:

import java.util.Date;

public class DateUtils {
    public static void main(String[] args) {
        Date currentDate = new Date();
        System.out.println("当前日期和时间:" + currentDate);
    }
}

2. 将日期格式化为字符串

可以使用 java.text.SimpleDateFormat 类将一个日期对象格式化为字符串。示例代码如下:

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtils {
    public static void main(String[] args) {
        Date currentDate = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate = dateFormat.format(currentDate);
        System.out.println("格式化后的日期:" + formattedDate);
    }
}

3. 将字符串解析为日期对象

可以使用 java.text.SimpleDateFormat 类将一个字符串解析为日期对象。示例代码如下:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtils {
    public static void main(String[] args) {
        String dateString = "2022-01-01";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date parsedDate = dateFormat.parse(dateString);
            System.out.println("解析后的日期:" + parsedDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

4. 获取指定时间的年、月、日

可以使用 java.util.Calendar 类来获取指定时间的年、月、日。示例代码如下:

import java.util.Calendar;

public class DateUtils {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, 2022);
        calendar.set(Calendar.MONTH, Calendar.JANUARY);
        calendar.set(Calendar.DAY_OF_MONTH, 1);

        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1;
        int day = calendar.get(Calendar.DAY_OF_MONTH);

        System.out.println("年:" + year);
        System.out.println("月:" + month);
        System.out.println("日:" + day);
    }
}

5. 获取指定日期是星期几

可以使用 java.util.Calendar 类来获取指定日期是星期几。示例代码如下:

import java.util.Calendar;

public class DateUtils {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(2022, Calendar.JANUARY, 1);

        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        System.out.println("星期几:" + weekDays[dayOfWeek - 1]);
    }
}

6. 计算两个日期之间的天数差

可以使用 java.util.Calendar 类计算两个日期之间的天数差。示例代码如下:

import java.util.Calendar;

public class DateUtils {
    public static void main(String[] args) {
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(2022, Calendar.JANUARY, 1);

        Calendar calendar2 = Calendar.getInstance();
        calendar2.set(2023, Calendar.JANUARY, 1);

        long milliSeconds1 = calendar1.getTimeInMillis();
        long milliSeconds2 = calendar2.getTimeInMillis();
        long difference = Math.abs(milliSeconds1 - milliSeconds2);
        long days = difference / (24 * 60 * 60 * 1000);

        System.out.println("日期差:" + days + "天");
    }
}

7. 计算给定日期的前几天或后几天的日期

可以使用 java.util.Calendar 类计算给定日期的前几天或后几天的日期。示例代码如下:

import java.util.Calendar;

public class DateUtils {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(2022, Calendar.JANUARY, 1);

        int daysToAdd = 7;
        calendar.add(Calendar.DAY_OF_MONTH, daysToAdd);

        System.out.println("结果日期:" + calendar.getTime());
    }
}

8. 判断一个年份是否是闰年

可以使用 java.util.Calendar 类判断一个年份是否是闰年。示例代码如下:

import java.util.Calendar;

public class DateUtils {
    public static void main(String[] args) {
        int year = 2022;
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, year);

        int daysInYear = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
        boolean isLeapYear = (daysInYear > 365);

        System.out.println(year + "年是否是闰年:" + isLeapYear);
    }
}

9. 获取一个月的最后一天

可以使用 java.util.Calendar 类获取一个月的最后一天。示例代码如下:

import java.util.Calendar;

public class DateUtils {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(2022, Calendar.JANUARY, 1);

        int lastDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

        System.out.println("最后一天:" + lastDayOfMonth);
    }
}

10. 获取两个日期之间的所有日期

可以使用 java.util.Calendar 类和循环来获取两个日期之间的所有日期。示例代码如下:

import java.util.Calendar;
import java.util.Date;

public class DateUtils {
    public static void main(String[] args) {
        Calendar calendarStart = Calendar.getInstance();
        calendarStart.set(2022, Calendar.JANUARY, 1);

        Calendar calendarEnd = Calendar.getInstance();
        calendarEnd.set(2022, Calendar.JANUARY, 10);

        Date startDate = calendarStart.getTime();
        Date endDate = calendarEnd.getTime();

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(startDate);

        while (calendar.getTime().before(endDate) || calendar.getTime().equals(endDate)) {
            System.out.println("日期:" + calendar.getTime());
            calendar.add(Calendar.DAY_OF_MONTH, 1);
        }
    }
}

以上是10个 Java 日期函数的用法示例,可以根据实际需求选择合适的函数来处理日期和时间。