java JDK时间 7时间 Calendar


Java JDK 7中,可以使用Calendar类来操作日期和时间。

下面是一个示例代码,展示如何使用Calendar类获取当前日期和时间:

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        // 创建一个Calendar实例
        Calendar calendar = Calendar.getInstance();

        // 获取当前时间
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,所以要加1
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);

        // 输出当前时间
        System.out.println("当前时间:" + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
    }
}

输出结果类似于:当前时间:2023-5-10 14:25:30

除了获取当前时间,Calendar类还可以进行日期和时间的计算、格式化输出等操作。下面是一些示例代码:

  1. 计算两个日期之间的天数差:
import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(2023, Calendar.MAY, 1);

        Calendar calendar2 = Calendar.getInstance();
        calendar2.set(2023, Calendar.MAY, 10);

        long diffMillis = calendar2.getTimeInMillis() - calendar1.getTimeInMillis();
        long diffDays = diffMillis / (24 * 60 * 60 * 1000);

        System.out.println("相差天数:" + diffDays);
    }
}

输出结果为:相差天数:9

  1. 格式化输出日期和时间:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        Date date = calendar.getTime();

        // 格式化日期
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String dateString = dateFormat.format(date);
        System.out.println("日期:" + dateString);

        // 格式化时间
        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
        String timeString = timeFormat.format(date);
        System.out.println("时间:" + timeString);
    }
}

输出结果为:日期:2023-05-10时间:14:25:30

需要注意的是,Calendar类中月份的取值范围是0~11,即0表示1月,11表示12月。同时,使用Calendar类进行日期和时间的计算时,需要考虑到时区和夏令时等因素。

  1. 在日期和时间上进行加减操作:
import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();

        // 在日期上进行加减
        calendar.add(Calendar.DAY_OF_MONTH, 3);
        System.out.println("加3天后的日期:" + calendar.getTime());

        // 在时间上进行加减
        calendar.add(Calendar.HOUR_OF_DAY, -2);
        System.out.println("减2小时后的时间:" + calendar.getTime());
    }
}

输出结果为:加3天后的日期:2023-05-13 14:25:30减2小时后的时间:2023-05-13 12:25:30

  1. 判断两个日期是否相等:
import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(2023, Calendar.MAY, 10);

        Calendar calendar2 = Calendar.getInstance();
        calendar2.set(2023, Calendar.MAY, 10);

        boolean isEqual = calendar1.equals(calendar2);
        System.out.println("两个日期是否相等:" + isEqual);
    }
}

输出结果为:两个日期是否相等:true

  1. 获取某个月份的天数:
import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, 2023);
        calendar.set(Calendar.MONTH, Calendar.FEBRUARY);

        int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("2023年2月份的天数:" + daysInMonth);
    }
}

输出结果为:2023年2月份的天数:28

以上是一些使用Calendar类进行日期和时间操作的示例,这些操作涵盖了Calendar类的主要功能。但需要注意的是,Java 8引入了java.time包,该包中的类提供了更好的日期和时间处理方式,建议在Java 8及以上版本中使用该包。


原文链接:codingdict.net