LocalDate对象的简介说明
下文笔者讲述LocalDate对象的简介说明,如下所示
LocalDate的由来
我们都知道JDK1.8之前有date类和calendar类 date类中有一些方法有设计缺陷,所以已经被弃用 而且难以阅读,最后有出现了一个SimpleDateFormat 但是由于这个类SimpleDateFormat不是线程安全 处于线程安全的问题,jdk8出现一个LocalDate,LocalDateTime,LocalTime类 这些类都是线程安全
LocalDate,LocalDateTime,LocalTime类简介
localdate: 年月日 localtime: 时分秒 localdatetime: 年月日时分秒
Localdate创建方法
//获取当前时间 LocalDate localDate = LocalDate.now(); //输入年月日设置时间 LocalDate localDate = LocalDate.of(year,month,day); 获取年月日星期几 int year = localDate.getYear(); int year = localDate.get(ChronoField.YEAR); //注意getMonth方法返回的是Month类,可通过getValue方法获得一个long类型的值,然后可以强转为int类型进行使用 Month month = localDate.getMonth(); int month1 = localDate.get(ChronoField.MONTH_OF_YEAR); int day = localDate.getDayOfMonth(); int day1 = localDate.get(ChronoField.DAY_OF_MONTH); //注意getDayOfWeek方法返回的是DayOfWeek类,可通过getValue方法获得一个long类型的值,然后可以强转为int类型进行使用 DayOfWeek dayOfWeek = localDate.getDayOfWeek(); int dayOfWeek1 = localDate.get(ChronoField.DAY_OF_WEEK); 进行加减日期 LocalDate localDate = LocalDate.now(); //增加一年 localDate = localDate.plusYears(1); localDate = localDate.plus(1, ChronoUnit.YEARS); //减少一个月 localDate = localDate.minusMonths(1); localDate = localDate.minus(1, ChronoUnit.MONTHS); //减少一日 localDate = localDate.minusDays(1); localDate = localDate.minus(1, ChronoUnit.DAYS); //通过使用with方法进行修改 //修改年为2020 localDate = localDate.withYear(2020); //修改为2020 localDate = localDate.with(ChronoField.YEAR, 2020); LocalTime相类似就是把年月日换成时分秒就可以了 创建LocalDateTime可以使用LocalDateTime.of(locaDate,localTime),LocalDate.atTime(localTime),LocalTime.atDate(localDate)来进行创建 LocalDateTime获取LocalDate和LocalTime的方法如下 //获取LocalDate LocalDate localDate = localDateTime.toLocalDate(); //获取LocalTime LocalTime localTime = localDateTime.toLocalTime(); Instant Instant类是1.8之后新增的,与1.8之前的Date类有点相似 Instant的创建方法 Instant instant = Instant.now(); //l为1970年1月1日至所记录时间的的毫秒数 Instant instant1 = Instant.ofEpochMilli(l); 设置时区偏移量 // 按时区设置偏移量 OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));// 设置偏移量为8 获取秒数 long currentSecond = instant.getEpochSecond(); 获取毫秒数 获取1970年1月1日至所记录时间的的毫秒数,类似于Date类中的getTime方法。 //获取毫秒数 long l = instant.toEpochMilli();
DateTimeFormatter类对LocalDate类格式转换的示例
//String转换成日期类型 //String类型转换成LocalDate类型 LocalDate localDate = LocalDate.parse("2022-12-09"); //String类型转换为LocalTime类型 LocalTime localTime = LocalTime.parse("17:26:00"); //String类型转换为LocalDateTime类型 //按照12小时计算 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"); //按照24小时计算 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDate localDate = LocalDate.parse("2022-12-09 07:43:53",formatter); //日期类型转换成String类型 //localDate转换成String LocalDate localDate = LocalDate.now(); //按照yyyyMMdd样式进行更改 String format = localDate.format(DateTimeFormatter.BASIC_ISO_DATE); //按照yyyy-MM-dd样式进行更改 String format = localDate.format(DateTimeFormatter.ISO_DATE); //自定义样式进行更改 DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日"); String format = localDate.format(pattern); //LocalTime类型转换为String类型 //按照xx:xx:xx.xx样式进行转换 LocalTime localTime = LocalTime.now(); String format3 = localTime.format(DateTimeFormatter.ISO_TIME); //按照自定义样式进行转换 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh:mm:ss"); String format4 = localTime.format(formatter); //LocalDateTime类型转换为String类型 LocalDateTime localDateTime = LocalDateTime.now(); DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"); String format5 = localDateTime.format(formatter2);
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。