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
相关推荐
在Java 8之前,日期和时间的处理相对复杂,而新的java.time包提供了更加直观且强大的类,如LocalDate、LocalTime、LocalDateTime和ZonedDateTime,它们更好地支持了日期、时间和时区的运算。 函数式接口是Java 8...
新API包括`java.time`包下的LocalDate、LocalTime、LocalDateTime等类,这些类提供了更为强大且易于使用的日期时间处理功能。 ```java // 获取当前日期 LocalDate date = LocalDate.now(); System.out.println(date)...
另一个重大改进是日期和时间API的更新,新的java.time包替代了之前的java.util.Date和java.util.Calendar,提供了更直观、更易于使用的类,如LocalDate、LocalTime和LocalDateTime,以及用于处理时区和日期时间计算...
6. **日期与时间API**:Java 8彻底重构了日期和时间的API,引入了java.time包,提供了更易于使用的类,如LocalDate、LocalTime、LocalDateTime等,取代了过时的Calendar和Date。 7. **Optional类**:Optional是一个...
5. **日期和时间API**:Java8改进了日期和时间的处理,引入了新的java.time包,包括LocalDate, LocalTime, LocalDateTime, ZonedDateTime等类,提供了更丰富的日期和时间操作。 6. **Optional类**:Optional是一个...
Java 8对日期和时间API进行了彻底的改革,引入了`java.time`包,包含`LocalDate`, `LocalTime`, `LocalDateTime`等类,以及`ZonedDateTime`和`Duration`等,提供了更直观和强大的日期时间处理功能。 **8. Nashorn ...
6. **日期和时间API(java.time)**:Java 8替换原有的Date和Calendar API,引入了全新的日期和时间API,包括LocalDate、LocalTime、LocalDateTime、ZonedDateTime等类,提供了更直观、更易于使用的日期和时间操作。...
5. **日期和时间API**: Java 8引入了`java.time`包,提供`LocalDate`、`LocalTime`、`LocalDateTime`等类,替代了原有的`java.util.Date`和`Calendar`,使日期和时间的操作更加直观。 **模块系统(Project Jigsaw)...
新API包括`LocalDate`、`LocalTime`、`LocalDateTime`等类,提供了更易用且功能强大的日期和时间操作。 6. **Optional类** `Optional<T>`是一个容器对象,可能包含或者不包含非null值。如果值存在则`isPresent()`...
新的API提供了更加直观、强大的日期、时间、时区操作,如LocalDate、LocalTime、LocalDateTime、ZonedDateTime等类,以及Period和Duration用于表示时间间隔。 5. Optional类:Optional是一个容器对象,可能包含或者...
4. **Date和Time API**:Java SE 8改进了日期和时间API,提供了更加友好的LocalDate、LocalTime、LocalDateTime、ZonedDateTime等类,取代了旧的Calendar和Date类,使得日期和时间的处理更加直观和灵活。 5. **默认...
在Java 8之前,日期和时间处理相对复杂,Java 8引入了全新的`java.time`包,包含`LocalDate`、`LocalTime`、`LocalDateTime`等类,它们提供了更易用且直观的API。此外,`ZonedDateTime`和`ZoneId`用于处理时区,`...
4. **日期和时间API**:Java 8改进了原有的日期和时间处理,引入了java.time包,包含LocalDate、LocalTime、LocalDateTime等类,提供了更加强大且易用的日期和时间操作功能,如日期间隔计算、格式化与解析等。...
6. **日期与时间API(java.time)**:Java 8对日期和时间处理进行了彻底改造,提供了更强大、更易用的API,如LocalDate、LocalTime、LocalDateTime、ZonedDateTime等,取代了旧的Calendar和Date。 7. **Optional类*...
Java 8还引入了日期和时间API的重大更新,移除了之前常常被诟病的`java.util.Date`和`java.util.Calendar`,引入了`java.time`包,包含如`LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime`等类,提供了...
Java 8引入了一个新的包`java.time`,它包含了用于日期时间处理的新类,如`LocalDate`、`LocalTime`和`LocalDateTime`等。这些类解决了旧日期时间API(如`Date`和`Calendar`)的一些问题,并提供了更现代的时间日期...
5. **日期与时间API**:Java8弃用了之前不友好的日期和时间API,引入了新的java.time包,提供了更加直观、强大的日期和时间处理功能,如LocalDate、LocalTime、LocalDateTime等。 6. **Optional类**:Optional是一...
`LocalDate`、`LocalTime`、`LocalDateTime`和`ZonedDateTime`等类为处理日期和时间提供了极大的便利。 此外,Java 8还引入了Optional类,用于表示可能为null的值。Optional可以帮助避免空指针异常,提高代码的健壮...
新API包括`LocalDate`、`LocalTime`、`LocalDateTime`、`ZonedDateTime`等类,提供了更直观、更强大的日期和时间操作。 3. **默认方法**: - 接口中新增了默认方法(default methods),使得接口在不破坏向后兼容...
5. **Date和Time API改进**:在Java 8中,日期和时间API得到了重大改进,引入了`java.time`包,提供了更易于使用的类如`LocalDate`, `LocalTime`和`LocalDateTime`,以及处理时区的`ZonedDateTime`等,取代了过时的`...