Java JDK 7中,可以使用Calendar类来操作日期和时间。
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。
当前时间:2023-5-10 14:25:30
除了获取当前时间,Calendar类还可以进行日期和时间的计算、格式化输出等操作。下面是一些示例代码:
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。
相差天数:9
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。
日期:2023-05-10
时间:14:25:30
需要注意的是,Calendar类中月份的取值范围是0~11,即0表示1月,11表示12月。同时,使用Calendar类进行日期和时间的计算时,需要考虑到时区和夏令时等因素。
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。
加3天后的日期:2023-05-13 14:25:30
减2小时后的时间:2023-05-13 12:25:30
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。
两个日期是否相等:true
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。
2023年2月份的天数:28
以上是一些使用Calendar类进行日期和时间操作的示例,这些操作涵盖了Calendar类的主要功能。但需要注意的是,Java 8引入了java.time包,该包中的类提供了更好的日期和时间处理方式,建议在Java 8及以上版本中使用该包。
java.time
原文链接:codingdict.net