目录
1、JDK1.8及之后的时间日期对象
LocalTime、LocalDate、LocalDateTime
1.1、 LocalTime用法
//获取系统当前时间
LocalDateTime now = LocalDateTime.now();
//只要日期
LocalDate localDate = localDateTime.toLocalDate();
//只要时间
LocalTime localTime = localDateTime.toLocalTime();
//获取指定时间
LocalDateTime time = LocalDateTime.of(年, 月, 日, 时, 分, 秒);
//获取年份
int year = time.getYear();
//获取月份
int monthValue = time.getMonthValue();
//获取月份中的第几天
int dayOfMonth = time.getDayOfMonth();
//获取年份中的第几天
int dayOfYear = time.getDayOfYear();
//获取星期几
DayOfWeek dayOfWeek = time.getDayOfWeek();
//获取分钟
int minute = time.getMinute();
//获取小时
int hour = time.getHour();
1.2、时间差计算
LocalDate localDate1 = LocalDate.of(年, 月, 日);
LocalDate localDate2 = LocalDate.of(年, 月, 日);
Period period = Period.between(localDate1, localDate2);
LocalDateTime localDateTime1 = LocalDateTime.of(年,月,日,时,分,秒,毫秒);
LocalDateTime localDateTime2 = LocalDateTime.of(年,月,日,时,分,秒,毫秒);
Duration duration = Duration.between(localDateTime1, localDateTime2);
1.3、修改
//plus进行修改
//年份加1,其他的类似
LocalDateTime newdatetime = dateTime.plusYears(1);//如果是负数则为减,为0则不变
//直接修改时间
//年份修改为2022年,其他修改方式类似使用with+...
LocalDateTime localDateTime = dateTime.withYear(2022);
2、Date和Calender的区别
Date类表示的是特定的,它能精确毫秒。
Calendar它是一种抽象类,相比Date它在操作日历的时候提供了一些方法来操作日历字段
2.1、两者的使用方法
Date用法:
//打印当前日期
Date date = new Date();
//时间转字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(date);
Calendar用法:
//为保证线程安全,使用单例构造,返回一个calendar对象
Calendar cal = Calendar.getInstance();
//打印当前日期
System.out.println(cal.getTime());
//打印年月日,时分秒
System.out.println("年:" + cal.get(Calendar.YEAR));
System.out.println("月:" + (cal.get(Calendar.MONTH) + 1));
System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
System.out.println("时:" + cal.get(Calendar.HOUR_OF_DAY));//24小时制
System.out.println("时:" + cal.get(Calendar.HOUR));//12小时制
System.out.println("分:" + cal.get(Calendar.MINUTE));
System.out.println("秒:" + cal.get(Calendar.SECOND));
//修改时间
cal.add(Calendar.YEAR.-1);//代表的是field[Calendar.YEAR]进行与-1相加
cal.roll(Calendar.YEAR.true);//true代表进行加1,false代表进行减1
cal.set(年,月,日);