在Java中,java.util.Calendar
类是一个抽象基类,它为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操控这些字段提供了一些方法
- 导入所需的包:
import java.util.Calendar; import java.text.SimpleDateFormat; import java.util.Date;
- 创建一个
Calendar
对象:
Calendar calendar = Calendar.getInstance();
- 设置日期和时间:
calendar.set(Calendar.YEAR, 2021); calendar.set(Calendar.MONTH, 6); // 注意:月份从0开始,所以6表示7月 calendar.set(Calendar.DAY_OF_MONTH, 20); calendar.set(Calendar.HOUR_OF_DAY, 14); calendar.set(Calendar.MINUTE, 30); calendar.set(Calendar.SECOND, 0);
- 获取日期和时间:
int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); // 注意:月份从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);
- 格式化日期:
Date date = calendar.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDate = sdf.format(date); System.out.println(formattedDate);
- 解析日期字符串:
String dateString = "2021-07-20 14:30:00"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse(dateString); Calendar calendar = Calendar.getInstance(); calendar.setTime(date);
- 计算日期差:
Calendar calendar1 = Calendar.getInstance(); calendar1.set(2021, 6, 20); // 注意:月份从0开始,所以6表示7月 Calendar calendar2 = Calendar.getInstance(); calendar2.set(2021, 7, 10); // 注意:月份从0开始,所以7表示8月 long millisecondsDiff = Math.abs(calendar1.getTimeInMillis() - calendar2.getTimeInMillis()); long daysDiff = millisecondsDiff / (24 * 60 * 60 * 1000); System.out.println("两个日期相差 " + daysDiff + " 天");
通过以上示例,你可以学会如何使用 Calendar
类处理日期格式。请根据实际需求调整代码。