概念
计算机当中保存时间的本质是用的什么数据类型???
时间再计算机当中是以整数的形式存在的,存放的是当=当前时间距离远点过了多少毫秒
虽然时间在本质上是整数,但是由于作为整数无法方便快捷的操作和阅读时间日期信息
用法
Date data = new Date() ;
直接获取当前时间日期对象-----这是用的最多的
Date past = new Date(123456789L);
根据指定毫秒数构造Date对象------使用频率低
如果设置指定时间,请使用Calendar这个类
/*
* 虽然时间在本质上是整数,但是由于作为整数无法方便快捷地操作和阅读时间日期信息,
* 所以在Java当中还是提供了类来封装它。
*/
Date date = new Date();//直接获取到当前的时间日期对象---这是用得最多的
Date past = new Date(12346579846L);//根据指定的毫秒数构造Date对象 ---- 使用频率极低
//现在对于Date最大的使用,就是配合SimpleDateFormat的类,对日期对象进行自定义格式化输出
SimpleDateFormat sdf = new SimpleDateFormat("yy年MM月dd日 HH:mm:ss E D");
String msg = sdf.format(date);
//如果要设置指定时间日期,请使用Calendar这个类
Calendar cal = Calendar.getInstance();//无需我们自己去产生子类对象,父类Calendar提供一个getInstance方法直接返回给我们一个公历对象
// cal.set(year, month, date);
past = cal.getTime();
msg = sdf.format(past);
System.out.println(msg);
1、public Date()——分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
1 @Test
2 public void test1() {
3 Date date = new Date();
4 System.out.println(date);
5 }
Sun Oct 23 22:39:14 CST 2016
2、public Date(long date)——根据给定的毫秒值创建日期对象。
1 @Test
2 public void test2() {
3 long time = System.currentTimeMillis();
4 Date date = new Date(time);
5 System.out.println(date);
6 }
Sun Oct 23 22:41:42 CST 2016
介绍完了Date的构造函数后,接下来来看看日期与毫秒值的相互转换
1、public long getTime()——日期转毫秒值
通过getTime方法可以将一个日期类型转换为long类型的毫秒值
1 @Test
2 public void test3() {
3 Date date = new Date();
4 System.out.println(date.getTime());
5 }
1477234414353
2、public void setTime(long time)——毫秒值转日期
1 @Test
2 public void test4() {
3 long time = System.currentTimeMillis();
4 Date date = new Date();
5 date.setTime(time);
6 System.out.println(date);
7 }
Sun Oct 23 22:53:05 CST 2016
当然也可以通过构造函数public Date(long date)将毫秒值转为日期类型。
通常我们会比较2个日期的大小,Date类提供以下方法用来比较2个日期的相关操作
1、public boolean before(Date when)——测试此日期是否在指定日期之前,当且仅当此Date对象表示的瞬间比when表示的瞬间早,才返回true;否则返回false。
1 @Test
2 public void test5() {
3 Date date1 = new Date(1000);
4 Date date2 = new Date(2000);
5 System.out.println(date1.before(date2));
6 }
true
2、public boolean after(Date when)——测试此日期是否在指定日期之后,当且仅当此Date对象表示的瞬间比when表示的瞬间晚,才返回true;否则返回false。
1 @Test
2 public void test6() {
3 Date date1 = new Date(1000);
4 Date date2 = new Date(2000);
5 System.out.println(date1.after(date2));
6 }
false
3、public int compareTo(Date anotherDate)——比较两个日期的顺序。
扫描二维码关注公众号,回复:
10908463 查看本文章
如果参数Date等于此Date,则返回值0;如果此Date在Date参数之前,则返回小于0的值;如果此Date在Date参数之后,则返回大于0的值。
1 @Test
2 public void test7() {
3 Date date1 = new Date(1000);
4 Date date2 = new Date(2000);
5 System.out.println(date1.compareTo(date2));
6 }