一、时间工具类Calendar
1、工具类的获取,可以直接获取它的抽象类,也可以new它的实现类,代码如下:
import java.io.*;
import java.util.*;
public class CalendarGet
{
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
if (calendar instanceof GregorianCalendar)
System.out.println("GregorianCalendar是calendar的实现";
}
}
2、工具类Calendar的使用方法
// 获取某日期的节点号
public void getDate(Date d) {
Calendar ca = Calendar.getInstance();
ca.setTime(d);
int year= ca.get(Calendar.YEAR); //年
int month= ca.get(Calendar.MONTH)+1; //月
int day = ca.get(Calendar.DAY_OF_MONTH); //日
int hour= ca.get(Calendar.HOUR_OF_DAY); //时
int month= ca.get(Calendar.MINUTE); //分
int month= ca.get(Calendar.SENCOND); //秒
}
// 给定日期的前/后n天
public void getDateForDayNum() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date());
ca.add(Calendar.DAY_OF_MONTH, n); //当前时间n天后的时间
Date dayAfter = ca.getTime();
ca.add(Calendar.DAY_OF_MONTH, -n); //当前时间n天前的时间
Date dayBefore = ca.getTime();
ca.add(Calendar.MONTH, n); //当前时间n月后的时间
Date monthAfter = ca.getTime();
ca.add(Calendar.MONTH, -n); //当前时间n月前的时间
Date monthBefore = ca.getTime();
ca.add(Calendar.YEAR, -n); //当前时间n年前的时间
Date yearBefore = ca.getTime();
ca.add(Calendar.YEAR, n); //当前时间n年后的时间
Date yearAfter = ca.getTime();
ca.add(Calendar.HOUR, -n); //当前时间n小时前的时间
Date hourBefore = ca.getTime();
ca.add(Calendar.HOUR, n); //当前时间n小时后的时间
Date hourAfter = ca.getTime();
// 当前时间前n个月的时间
public void getLastDay() {
Calendar ca = Calendar.getInstance();
ca.setTime(new Date());
ca.roll(Calendar.MONTH, n); // 向后回滚n个月
ca.set(Calendar.DATE, 0);
Date time = ca.getTime();
}
// 某个月有多少天
public int getDateNumForDate(Date date) {
Calendar ca = Calendar.getInstance();
ca.setTime(date);
ca.set(Calendar.DATE, 0);
return ca.get(Calendar.DATE);
}
// 某年某月是星期几(周日返回0,周一到周六就是1-6)
public int getWeek(Date date) {
Calendar ca = Calendar.getInstance();
int week = ca.get(Calendar.DAY_OF_WEEK) - 1;
return week;
}
}