`

java8 新增的时间处理LocalDate、LocalTime、LocalDateTime

    博客分类:
  • java
 
阅读更多

LocalDate

java中做时间处理时一般会采用java.util.Date,但是相比于Date来说,还有更好的选择 -- java.time.LocalDate。

这是jdk8中新增的日期处理类,同时新增的还有java.time.LocalTime、java.time.LocalDateTime等。

LocalDate不包含时间,只是单纯的年月日,要精确到时分秒甚至毫秒的就需要用java.time.LocalDateTime了。

方法如下:

getYear()    int    获取当前日期的年份
getMonth()    Month    获取当前日期的月份对象
getMonthValue()    int    获取当前日期是第几月
getDayOfWeek()    DayOfWeek    表示该对象表示的日期是星期几
getDayOfMonth()    int    表示该对象表示的日期是这个月第几天
getDayOfYear()    int    表示该对象表示的日期是今年第几天
withYear(int year)    LocalDate    修改当前对象的年份
withMonth(int month)    LocalDate    修改当前对象的月份
withDayOfMonth(int dayOfMonth)    LocalDate    修改当前对象在当月的日期
isLeapYear()    boolean    是否是闰年
lengthOfMonth()    int    这个月有多少天
lengthOfYear()    int    该对象表示的年份有多少天(365或者366)
plusYears(long yearsToAdd)    LocalDate    当前对象增加指定的年份数
plusMonths(long monthsToAdd)    LocalDate    当前对象增加指定的月份数
plusWeeks(long weeksToAdd)    LocalDate    当前对象增加指定的周数
plusDays(long daysToAdd)    LocalDate    当前对象增加指定的天数
minusYears(long yearsToSubtract)    LocalDate    当前对象减去指定的年数
minusMonths(long monthsToSubtract)    LocalDate    当前对象减去注定的月数
minusWeeks(long weeksToSubtract)    LocalDate    当前对象减去指定的周数
minusDays(long daysToSubtract)    LocalDate    当前对象减去指定的天数
compareTo(ChronoLocalDate other)    int    比较当前对象和other对象在时间上的大小,返回值如果为正,则当前对象时间较晚,
isBefore(ChronoLocalDate other)    boolean    比较当前对象日期是否在other对象日期之前
isAfter(ChronoLocalDate other)    boolean    比较当前对象日期是否在other对象日期之后
isEqual(ChronoLocalDate other)    boolean    比较两个日期对象是否相等

一般用法如下:

        // 取当前日期:
        LocalDate today = LocalDate.now(); // -> 2018-04-02
        // 根据年月日取日期:
        LocalDate crischristmas = LocalDate.of(2014, 12, 25); // -> 2014-12-25
        // 根据字符串取:
        LocalDate endOfFeb = LocalDate.parse("2014-02-28"); // 严格按照ISO yyyy-MM-dd验证,02写成2都不行,当然也有一个重载方法允许自己定义格式
        // 取本月第1天:
        LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2018-04-01
        // 取本月第2天:
        LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2018-04-02
        // 取本月最后一天,再也不用计算是28,29,30还是31:
        LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2018-04-30
        // 取下一天:
        LocalDate firstDayOf2015 = lastDayOfThisMonth.plusDays(1); // 变成了2018-05-01
        // 取2017年1月第一个周一,用Calendar要死掉很多脑细胞:
        LocalDate firstMondayOf2015 = LocalDate.parse("2017-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2017-01-02

 

 

 LocalTime

LocalTime只包含时间,获得当前时间:

LocalTime now = LocalTime.now(); // 23:11:08.006

构造时间:

LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00
LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00

你可以通过这些方法访问其时、分、秒、纳秒:

getHour()
getMinute()
getSecond()
getNano()

 LocalTime类包含一系列方法,能帮你完成时间计算:

plusHours()
plusMinutes()
plusSeconds()
plusNanos()
minusHours()
minusMinutes()
minusSeconds()
minusNanos()

 

 

LocalDateTime

创建一个LocatDateTime实例 
可以通过LocalDateTime的静态工厂方法来创建LocalDateTime实例。以下举例使用now()方法创建: 
LocalDateTime localDateTime = LocalDateTime.now(); 
另一种方式是使用指定的年月日、时分秒、纳秒来新建对象: 
LocalDateTime localDateTime2 = LocalDateTime.of(2015, 11, 26, 13, 55, 36, 123);

 

你可以通过这些方法访问其日期时间:

 

getYear()
getMonth()
getDayOfMonth()
getDayOfWeek()
getDayOfYear()
getHour()
getMinute()
getSecond()
getNano()
 

 

LocalDateTime类包含一系列方法,能帮你完成时间计算:

plusYears()
plusMonths()
plusDays()
plusHours()
plusMinutes()
plusSeconds()
plusNanos()
minusYears()
minusMonths()
minusDays()
minusHours()
minusMinutes()
minusSeconds()
minusNanos()

 

 

参考:https://www.cnblogs.com/jtools/p/6502999.html 

https://blog.csdn.net/tjgykhulj/article/details/69053938

https://blog.csdn.net/tjgykhulj/article/details/69053940

 

 

 

 

分享到:
评论

相关推荐

    Java8 API.rar_JAVA8API_Java 8_java 8 api_java 8 api下载_java8

    在Java 8之前,日期和时间的处理相对复杂,而新的java.time包提供了更加直观且强大的类,如LocalDate、LocalTime、LocalDateTime和ZonedDateTime,它们更好地支持了日期、时间和时区的运算。 函数式接口是Java 8...

    Java 8编程入门官方教程

    新API包括`java.time`包下的LocalDate、LocalTime、LocalDateTime等类,这些类提供了更为强大且易于使用的日期时间处理功能。 ```java // 获取当前日期 LocalDate date = LocalDate.now(); System.out.println(date)...

    java8,JDK,JDK8,Android

    另一个重大改进是日期和时间API的更新,新的java.time包替代了之前的java.util.Date和java.util.Calendar,提供了更直观、更易于使用的类,如LocalDate、LocalTime和LocalDateTime,以及用于处理时区和日期时间计算...

    JAVA8的新增特性

    6. **日期与时间API**:Java 8彻底重构了日期和时间的API,引入了java.time包,提供了更易于使用的类,如LocalDate、LocalTime、LocalDateTime等,取代了过时的Calendar和Date。 7. **Optional类**:Optional是一个...

    Java8 官方教程

    5. **日期和时间API**:Java8改进了日期和时间的处理,引入了新的java.time包,包括LocalDate, LocalTime, LocalDateTime, ZonedDateTime等类,提供了更丰富的日期和时间操作。 6. **Optional类**:Optional是一个...

    java8中文文档API

    Java 8对日期和时间API进行了彻底的改革,引入了`java.time`包,包含`LocalDate`, `LocalTime`, `LocalDateTime`等类,以及`ZonedDateTime`和`Duration`等,提供了更直观和强大的日期时间处理功能。 **8. Nashorn ...

    Pro Java 8 Programming

    6. **日期和时间API(java.time)**:Java 8替换原有的Date和Calendar API,引入了全新的日期和时间API,包括LocalDate、LocalTime、LocalDateTime、ZonedDateTime等类,提供了更直观、更易于使用的日期和时间操作。...

    JAVA8API-官方文档下载-中文版

    5. **日期和时间API**: Java 8引入了`java.time`包,提供`LocalDate`、`LocalTime`、`LocalDateTime`等类,替代了原有的`java.util.Date`和`Calendar`,使日期和时间的操作更加直观。 **模块系统(Project Jigsaw)...

    java8 API 文档

    新API包括`LocalDate`、`LocalTime`、`LocalDateTime`等类,提供了更易用且功能强大的日期和时间操作。 6. **Optional类** `Optional<T>`是一个容器对象,可能包含或者不包含非null值。如果值存在则`isPresent()`...

    Java 8 源码

    新的API提供了更加直观、强大的日期、时间、时区操作,如LocalDate、LocalTime、LocalDateTime、ZonedDateTime等类,以及Period和Duration用于表示时间间隔。 5. Optional类:Optional是一个容器对象,可能包含或者...

    写给大忙人看的Java SE 8

    4. **Date和Time API**:Java SE 8改进了日期和时间API,提供了更加友好的LocalDate、LocalTime、LocalDateTime、ZonedDateTime等类,取代了旧的Calendar和Date类,使得日期和时间的处理更加直观和灵活。 5. **默认...

    OnJava8.zip

    在Java 8之前,日期和时间处理相对复杂,Java 8引入了全新的`java.time`包,包含`LocalDate`、`LocalTime`、`LocalDateTime`等类,它们提供了更易用且直观的API。此外,`ZonedDateTime`和`ZoneId`用于处理时区,`...

    corejava8.rar

    4. **日期和时间API**:Java 8改进了原有的日期和时间处理,引入了java.time包,包含LocalDate、LocalTime、LocalDateTime等类,提供了更加强大且易用的日期和时间操作功能,如日期间隔计算、格式化与解析等。...

    JAVA8最新教程

    6. **日期与时间API(java.time)**:Java 8对日期和时间处理进行了彻底改造,提供了更强大、更易用的API,如LocalDate、LocalTime、LocalDateTime、ZonedDateTime等,取代了旧的Calendar和Date。 7. **Optional类*...

    Java SE 8 Documentation(b54)官方参考文档CHM版

    Java 8还引入了日期和时间API的重大更新,移除了之前常常被诟病的`java.util.Date`和`java.util.Calendar`,引入了`java.time`包,包含如`LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime`等类,提供了...

    尚硅谷Java8新特性下载

    Java 8引入了一个新的包`java.time`,它包含了用于日期时间处理的新类,如`LocalDate`、`LocalTime`和`LocalDateTime`等。这些类解决了旧日期时间API(如`Date`和`Calendar`)的一些问题,并提供了更现代的时间日期...

    Java8新特性视频 最新的讲解视频

    5. **日期与时间API**:Java8弃用了之前不友好的日期和时间API,引入了新的java.time包,提供了更加直观、强大的日期和时间处理功能,如LocalDate、LocalTime、LocalDateTime等。 6. **Optional类**:Optional是一...

    官方java8规范-jls8.rar

    `LocalDate`、`LocalTime`、`LocalDateTime`和`ZonedDateTime`等类为处理日期和时间提供了极大的便利。 此外,Java 8还引入了Optional类,用于表示可能为null的值。Optional可以帮助避免空指针异常,提高代码的健壮...

    java8参考手册

    新API包括`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等类,提供了更直观、更强大的日期和时间操作。 3. **默认方法**: - 接口中新增了默认方法(default methods),使得接口在不破坏向后兼容...

    java jdk-8u60-windows-x64

    5. **Date和Time API改进**:在Java 8中,日期和时间API得到了重大改进,引入了`java.time`包,提供了更易于使用的类如`LocalDate`, `LocalTime`和`LocalDateTime`,以及处理时区的`ZonedDateTime`等,取代了过时的`...

Global site tag (gtag.js) - Google Analytics