LocalDate对象的简介说明

乔欣 Java教程 发布时间:2022-12-09 11:42:29 阅读数:7318 1
下文笔者讲述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);
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202212/5086.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者