1.Date
(1)获取当前的系统时间
//获取当前的系统时间 //该类(Date)是在java.util包下 //默认输出的格式是:月日年,因此通常需要转换格式 Date d1 = new Date(); System.out.println("当前日期 = " + d1);
(2)转换日期格式
单词区:SimpleDateFormat:日期格式 format:格式化
//转换日期格式,承接上一段代码 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E"); String time = sdf.format(d1); System.out.println("当前日期 = " + time);
(3)通过获得毫秒数得到时间
Date d2 = new Date(47687686); System.out.println("d2 = " + d2);
(4)将String格式化的日期转换成Date
//可以把一个格式化的String 转成对应的Date //在把String -> Date ,使用sdf格式需要和你给的String的格式一样,否则会抛出转换异常 String s = "2020年03月17日 21:30:25 星期四"; Date parse = sdf.parse(s); System.out.println("parse = " + parse);
2.Calendar类
//1.Calendar是一个抽象类, 并且构造器是private //2.可以通过getInstance() 来获取实例 //3.还提供大量的方法和字段使用 //4.Calendar没有提供对应的格式化的类,因此需要我们自己组合
(1)创建一个日历对象
//创建日历对象 Calendar c = Calendar.getInstance(); System.out.println("c = " + c);
(2)获取日历对象的某个日历字段
System.out.println("年:" + c.get(Calendar.YEAR)); //月份默认返回从 0 开始 因此需要 + 1 System.out.println("月:" + (c.get(Calendar.MONTH)+1)); System.out.println("日:" + c.get(Calendar.DAY_OF_MONTH)); System.out.println("小时:" + c.get(Calendar.HOUR)); System.out.println("分钟:" + c.get(Calendar.MINUTE)); System.out.println("秒:" + c.get(Calendar.SECOND));
3.第三种日期使用
(1)LocalDate(日期/年月日)、LocalTime(时间/时分、LocalDateTime(日期时间/年月日时分秒)JDK8加入
//now() 返回一个当前的时间 //LocalDate.now();//年月日 //LocalTime.now();//时分秒 LocalDateTime ldt = LocalDateTime.now();//返回当前的年月日时分秒 System.out.println("当前的时间" + ldt); //获取年 System.out.println("年 = " + ldt.getYear()); //获取月 具体的数字 System.out.println("月(数字) = " + ldt.getMonthValue()); //获取月 英文字母 System.out.println("月(字母) = " + ldt.getMonth()); //日 System.out.println("日 = " + ldt.getDayOfMonth()); //时 System.out.println("时 = " + ldt.getHour()); //分 System.out.println("分 = " + ldt.getMinute()); //秒 System.out.println("秒 = " + ldt.getSecond());
(2) DateTimeFormatter格式日期类
//now() 返回一个当前的时间 //LocalDate.now();//年月日 //LocalTime.now();//时分秒 LocalDateTime ldt = LocalDateTime.now();//返回当前的年月日时分秒 System.out.println("当前的时间" + ldt); //格式化时间 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String format01 = dtf.format(ldt); System.out.println(format01);
(3)Instant时间戳
//提供plus 和 minus 方法进行对时间的增加和删除 LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); //增加100天 LocalDateTime ldt02 = ldt.plusDays(100); //减去50天 LocalDateTime ldt03 = ldt.minusDays(50); //日期格式转化 formatter : 格式化 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss "); String format01 = dtf.format(ldt02); String format02 = dtf.format(ldt03); System.out.println(format01); System.out.println(format02);