一.Date类
现在该类中的很多方法以及弃用,但是如果只是想要输出个当前时间,还是可以简单使用的。
Date date = new Date();
//默认输出的日期格式是国外的格式
System.out.println(date);//返回当前的系统时间
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
String format = simpleDateFormat.format(date);
System.out.println(format);//输出格式化后的日期
//可以把一个格式化的String转化为对应的Date
//得到的Date输出时仍按照国外的格式,可以继续使用simpleDateFormat来转换成中国的格式
//转换的格式需要按照你定义的simleDateFormat的格式来写。
String s = "1996年01月01日 10:20:30 星期一";
Date parse = simpleDateFormat.parse(s);
System.out.println(parse);
运行结果:
二.Calendar
/Calendar是一个抽象类,并且构造器是私有的,可以通过getInstance方法来获取实例
Calendar instance = Calendar.getInstance();
System.out.println(instance);//返回Calendar对象的字段
//获取日历对象相关的字段即可
System.out.println("年:" + instance.get(Calendar.YEAR));
//这里加1的原因是外国的月是从0开始的
System.out.println("月:" + (instance.get(Calendar.MARCH)+ 1));
System.out.println("日:" + instance.get(Calendar.DAY_OF_MONTH));
//默认是按照12小时进制,如果要使用24小时进制,改为HOUR_OF_DAY
System.out.println("时:" +instance.get(Calendar.HOUR));
System.out.println("分:" + instance.get(Calendar.MINUTE));
System.out.println("秒:" + instance.get(Calendar.SECOND));
三.第三类日期LocalDateTime
//第三类日期是在jdk8之后加入的
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
System.out.println(localDateTime.getYear());
System.out.println(localDateTime.getMonth());
System.out.println(localDateTime.getMonthValue());//得到几月(数字形式)
System.out.println(localDateTime.getDayOfMonth());
System.out.println(localDateTime.getHour());
//LocalDate是只能获取年月日。LocalTime只能获取时分秒
//DateTimeFormatter类似于SimpleFormat
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 hh:mm:ss E");
String format = dateTimeFormatter.format(localDateTime);
//按格式输出时间
System.out.println(format);
//获取时间戳
Instant now = Instant.now();
System.out.println(now);
//通过Date.from方法将Instant对象转换为Date
Date from = Date.from(now);
//也可以通过Date的toInstant()可以把Date转换为Instant对象
Instant instant = from.toInstant();
//=============================================================
//提供了大量的plus和minus方法对时间进行加减
LocalDateTime localDateTime1 = localDateTime.plusDays(890);
String format1 = dateTimeFormatter.format(localDateTime1);
System.out.println(format1);
LocalDateTime localDateTime2 = localDateTime.minusMinutes(3456);
String format2 = dateTimeFormatter.format(localDateTime2);
System.out.println(format2);