Date类概述
类 Date 表示特定的瞬间,精确到毫秒。
毫秒概念:1000毫秒=1秒
毫秒的0点:
System.currentTimeMillis() 返回值long类型参数
用于获取当前日期的毫秒值
时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0
注意:时间和日期的计算,必须依赖毫秒值
代码实现:
1 public static void main(String[] args) {
2 //获取当前时间的毫秒值
3 //时间原点:1970年一月一日,午夜00:00:00
4 long time=System.currentTimeMillis();
5 System.out.println(time);
6 //创建当前日期对象
7 Date date=new Date();
8 //System.out.println(date);
9 //创建制定毫秒值的日期对象
10 Date d1=new Date(1500000000000000000l);
11 System.out.println(d1);
12 System.out.println(date.getTime());
13 }
Date常用方法:
DateFormat类概述
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
日期/时间格式化子类(如 SimpleDateFormat类)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。
构造方法
DateFormat类方法
format是日期转为字符串
代码实现:
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
Date d=new Date(1500000000l);
System.out.println(d);
//将日期类型对象按照我们指定的格式转换为字符串
String time=sdf.format(d);
System.out.println(time);
//将字符串转换为日期对象
String t="1991-5-5-23:33:44";
Date d1=sdf.parse(t);
System.out.println(d1);
}
Calendar日历类:
时间信息封装为静态成员变量
静态方法:
getInstance返回的是一个calendar类
常用方法:
gettime返回的是一个date对象
代码实现:
public static void main(String[] args) {
//获取日历类对象
Calendar c=Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(c.get(Calendar.DAY_OF_MONTH));
//给指定日历成员变量设置指定的值
c.set(Calendar.HOUR_OF_DAY, 21);
//将日历对象转为日期对象
Date d=c.getTime();
System.out.println(d);
}
练习:
public static void main(String[] args) {
// 求出自己已经出生多少天
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR, 1997);
c.set(Calendar.MONTH,10);
c.set(Calendar.DATE,6);
Date d=c.getTime();
long birth=d.getTime();
//获取当前日期的毫秒值
long now=System.currentTimeMillis();
long day=(now-birth)/1000/60/60/24;
System.out.println(day);
}
基本练习:
1 //Calendar是抽象类,getInstance()返回的是它的子类GregorianCalendar
2 Calendar cal = Calendar.getInstance();
3 int year = cal.get(Calendar.YEAR);
4 System.out.println("现在的年份为:" + year);
5 //规定的MONTH为0-11 所以 +1获取真实月份
6 int month = cal.get(Calendar.MONTH) + 1;
7 System.out.println("现在的月份为:" + month);
8 //date表示日期,day表示天数,所以date与day_of_month相同
9 int date = cal.get(Calendar.DATE);
10 System.out.println("天:" + date);
11 int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
12 System.out.println("天:" + dayOfMonth);
13 //表示本周的第几天,从周日开始计算
14 int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
15 System.out.println("现在是星期:" + dayOfWeek);
16 int dayOfYear = cal.get(Calendar.DAY_OF_YEAR);
17 //表示本年中的第几天
18 System.out.println("本年中的第几天:" + dayOfYear);
19 //12小时制
20 int hour = cal.get(Calendar.HOUR);
21 System.out.println("小时:" + hour);
22 //24小时制
23 int hourOfDay = cal.get(Calendar.HOUR_OF_DAY);
24 System.out.println("小时:" + hourOfDay);
25 int minute = cal.get(Calendar.MINUTE);
26 System.out.println("分钟:" + minute);
27 int second = cal.get(Calendar.SECOND);
28 System.out.println("秒:" + second);
29 int millisecond = cal.get(Calendar.MILLISECOND);
30 System.out.println("毫秒:" + millisecond);
31 int maxDate = cal.getActualMaximum(Calendar.DATE);
32 System.out.println("本月最后一天是:" + maxDate);
33
34 //修改时间操作 set()add()
35 Calendar calendar = Calendar.getInstance();
36
37 //当前时间基础上 增加 15;减去 -15
38 calendar.add(Calendar.MINUTE, 15);
39 System.out.println("当前分钟:"+minute+ "--15分钟后:" + calendar.get(Calendar.MINUTE));
40 //修改当前时间
41 calendar.set(Calendar.MINUTE, 30);
42 System.out.println("当前分钟:"+minute+ "--修改后:" + calendar.get(Calendar.MINUTE));