/**
* 1.获取当前系统时间
* 2.是在java.util包下的
* 3.默认输出的格式是国外的方法,通常需要对格式进行转换
* 利用SimpleDateFormat进行转换
*/
Date date1 = new Date();
/**
* 在后面可以指定时间格式的输出方式
* y 年
* M 月
* d 日
* h 时
* m 分
* s 秒
*/
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
String format1 = simpleDateFormat.format(date1);
System.out.println("date1当前日期,新的格式为: "+format1);
/**
* 通过指定毫秒数,获取时间
*/
Date date2 = new Date(65345242);
String format2 = simpleDateFormat.format(date2);
System.out.println("date2当前日期,新的格式为: "+format2);
/**
* 可以把一个字符串时间转为对应的Date时间(这里需要抛出或捕获异常)
* 下面s1中的格式需要与上面new SimpleDateFormat()指定的格式保持一致,否则会报错
*/
String s1 = "2022年08月20日 20:00:00";
Date date3 = simpleDateFormat.parse(s1);
String format3 = simpleDateFormat.format(date3);
System.out.println("date3当前日期,新的格式为: "+format3);
/**
* Calendar是一个抽象类,并且他的构造器是private
* 可以通过getInstance来获取实例
*/
Calendar c = Calendar.getInstance(); //创建日历类对象
System.out.println(c);
/**
* 获取日历对象的某个相关字段
* 月的话需要+1 月是按0开始编号的
* 如果需要按照24小时进制来表示小时 Calendar.HOUR ---> Calendar.HOUR_OF_DAY
* calendar 没有专门的格式化方法,需要自己组装
*/
System.out.println("年" + c.get(Calendar.YEAR));
System.out.println("月" + c.get(Calendar.MONTH) + 1);
System.out.println("日" + c.get(Calendar.DATE));
System.out.println("小时" + c.get(Calendar.HOUR));
System.out.println("小时" + c.get(Calendar.HOUR_OF_DAY));
/**
* 第三代日期
* JDK8 加入的 LocalDate(日期) LocalTime(时间) LocalDateTime(日期时间)
* .get 可以取对应属性 .getYear()
*/
LocalDate now1 = LocalDate.now();
LocalTime now2 = LocalTime.now();
LocalDateTime now3 = LocalDateTime.now();
/**
* 也可以对时间进行加或减
* plus minus
* now3.plusDays(30) 加30天
* 看看30分钟前是多会:now3.minusMinutes(30)
*/
System.out.println(now1);
System.out.println(now2);
System.out.println(now3);
System.out.println(now3.plusDays(30));
System.out.println(now3.minusMinutes(30));
/**
*DateTimeFormatter格式日期类 类似于SimpleDateFormat
* DateTimeFormatter.ofPattern(格式)
*/
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 hh:mm:ss");
String format = dateTimeFormatter.format(now3);
System.out.println(format);