关于java基础--日期类与日历类Calendar详解测试

来源:互联网 发布:漓江学院 知乎 编辑:程序博客网 时间:2024/06/12 23:42

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);

}

0 0
原创粉丝点击