1,Date
Date d = new Date();
//创建日期比当前延迟100毫秒后的日期
Date d1 = new Date(System.currentTimeMillis()+100);
1-1,After()判断d表示的日期是否在b1表示的之后
System.out.println(d.after(d1));
1-2,before()判断d表示的日期是否在b1表示的之前
System.out.println(d.before(d1));
Date d2 = new Date();
Date d3 = new Date();//d2和d3为一个日期时间,也不在之前也不在之后
1-3,compareTo比较两个日期的顺序。
* 如果参数 Date 等于此 Date,则返回值 0;
* 如果此 Date 在 Date 参数之前,则返回小于 0 的值;
* 如果此 Date 在 Date 参数之后,则返回大于 0 的值。
System.out.println(d2.compareTo(d3));//0
2,DateFormat格式化日期
步骤:(1)创建当前时间Date()
(2)创建时间格式化类SimpleDateFormat()
(3)格式化时间:simple.format(date)
Date d = new Date();创建当前日期
//Thu Oct 16 09:49:47 CST 2014,因为格式为西方,因此需要格式化为东方风格
3,SimpleDateFormat是一个格式化日期的类
构造器的参数是一个日期模板
* 年:yyyy表示月:MM表示日:dd表示
* 时:HH表示分:mm秒:ss毫秒:SS
SimpleDateFormat simple = new SimpleDateFormat("yyyy/MM/dd");
3-1,format(date)格式化日期用
String str = simple.format(d);
3-2,格式化日期包括年.月.日.时.分.秒
SimpleDateFormat simple01 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str1 = simple01.format(d);
SimpleDateFormat simple02 = new SimpleDateFormat("yyyy-MM-dd HH时mm分ss秒 \n E a 第w周");
String str2 = simple02.format(d);
3-3,parse(String)把日期格式化的字符串转为date类型
SimpleDateFormat simple03 = new SimpleDateFormat("yyyy-MM-dd");
String date = "2014-10-16";//一个日期类型的字符串
try {
//调用方法把日期类型的字符串转换城date类型的数据
Date d2 = simple03.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
4,Calendar日历类
//创建一个日历类的对象
static Calendar c = Calendar.getInstance();
public static void test() {
System.out.println(c);
4-1,get()获取方法
YEAR:当前日历中的年份
int year = c.get(Calendar.YEAR);
DAY_OF_YEAR:获取当前这一天是一年的第几天
int dayNum = c.get(Calendar.DAY_OF_YEAR);
DATE获取当前日历中的天数
int date =c.get(Calendar.DATE);
MONTH获取当前日历中的月份(西方从0开始)
int month = c.get(Calendar.MONTH)+1;
DAY_OF_WEEK获取当前日历的星期几
int week = c.get(Calendar.DAY_OF_WEEK)-1;
DAY_OF_WEEK_IN_MONTH 获取日期处于当前月的第几个星期
int dow =c.get(Calendar.DAY_OF_WEEK_IN_MONTH);
AM_PM获取当前时间是中午之前还是之后
int ap = c.get(Calendar.AM_PM);
WEEK_OF_YEAR当前的星期是这一年的第几个星期
int woy = c.get(Calendar.WEEK_OF_YEAR);
WEEK_OF_MONTH获取当前这个星期是这个月的第几个星期
int wom = c.get(Calendar.WEEK_OF_MONTH);
4-2,Calendar.SATURDAY返回对应星期数在这个星期的第几天
int sat = Calendar.SATURDAY;
4-2.add()方法
* 检测添加天数超过本月的天数是否可以自动添加月份
* 如果当前的字段+指定的值后,超过了这个字段所表示的最大值时,
* 用add()这个字段的上一级会自动增加
* 用roll超过了最大值后,上一级不会自动增加
//把当前的月份+1
c.add(Calendar.MONTH, 1);
//把当前的天数+4
c.add(Calendar.DATE, 4);
//把当前年份-14
c.add(Calendar.YEAR, -14)
4-3,根据时间算目前多大
public static void test2(){
Date da = c.getTime();
System.out.println(da);
long l = da.getTime();
System.out.println(l);
//设置出生年月1993-6-1
//方法一:
c.set(Calendar.YEAR, 1993);
c.set(Calendar.MONTH, 6);
c.set(Calendar.DATE, 1);
//方法二:
//c.set(1993, 6, 1);
//方法三:
//c.add(Calendar.MONTH, 7);
//c.add(Calendar.DATE, -2);
//c.add(Calendar.YEAR, -23);
Date da1 = c.getTime();
//获取出生到1970-1-1之间的毫秒数
long l1 = da1.getTime();
long l2 =l-l1;
long l4 = l2/86400000/365;
System.out.println(l4);
int l3 = (int)(l2/86400000/365);
System.out.println(l3);
}