使用LocalDate和LocalTime
静态工厂方法of创建一个LocalDate实例。LocalDate实例提供了多种方法来读取常用的值,比如年份、月份、星期几等,如下所示。
LocalDate date = LocalDate.of(2019, 8, 27);
int year = date.getYear();//2019----获取年份
Month month = date.getMonth();//AUGUST----获取月份
int day = date.getDayOfMonth();//27----获取天数
DayOfWeek dow = date.getDayOfWeek();//TUESDAY----获取星期几
int len = date.lengthOfMonth();//31----获取当月天数
boolean leap = date.isLeapYear();//false----获取是否闰年
静态工厂方法of创建一个LocalTime实例。LocalTime实例提供了多种方法来读取常用的值,比如小时、分钟、秒等,如下所示。
LocalTime time = LocalTime.of(23, 45, 20);
int hour = time.getHour();//23----获取小时
int minute = time.getMinute();//45----获取分钟
int second = time.getSecond();//20----获取秒数
使用LocalDateTime
静态工厂方法of创建一个LocalDateTime实例。LocalTime实例提供了多种方法来读取常用的值,比如年份、月份、星期几、小时、分钟、秒等,如下所示。
LocalDateTime dateTime = LocalDateTime.of(2014, Month.MARCH, 18, 13, 45, 20);
int year = dateTime.getYear();//2019----获取年份
Month month = dateTime.getMonth();//AUGUST----获取月份
int day = dateTime.getDayOfMonth();//27----获取天数
DayOfWeek dow = dateTime.getDayOfWeek();//TUESDAY----获取星期几
int hour = dateTime.getHour();//23----获取小时
int minute = dateTime.getMinute();//45----获取分钟
int second = dateTime.getSecond();//20----获取秒数
定义Duration或Period
上面获取时间,和获取时间的各个属性都已经有了,是不是感觉差了点什么,怎么获取两个时间差?
Period period = Period.between(LocalDate.of(2015, 3, 8),
LocalDate.of(2014, 3, 18));
Duration duration = Duration.between(
LocalDateTime.of(2014, Month.MARCH, 18, 13, 45, 20),
LocalDateTime.of(2014, Month.MARCH, 18, 13, 5, 20));
日期----时间类中表示时间间隔的通用方法
操纵、解析和格式化日期
举例说明
LocalDate date1 = LocalDate.of(2019, 8, 28);//2019-08-28
LocalDate date2 = date1.withYear(1995);//1995-08-28
LocalDate date3 = date2.withDayOfMonth(30);//1995-08-28
LocalDate date4 = date3.with(ChronoField.MONTH_OF_YEAR, 4);//1995-04-28
LocalDate date1 = LocalDate.of(2019, 8, 28);//2019-08-28
LocalDate date2 = date1.plusDays(2);//2019-08-30
LocalDate date3 = date2.minusYears(24);//1995-08-30
LocalDate date4 = date3.minus(4, ChronoUnit.MONTHS);//1995-04-30
表示时间点的日期----时间类的通用方法
打印输出及解析日期时间对象
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date1 = LocalDate.of(1995, 4, 30);//1995-04-30
String formattedDate = date1.format(formatter);//1995-04-30
LocalDate date2 = LocalDate.parse(formattedDate, formatter);//30/04/1995