Java8时间类常用示例
程序员文章站
2024-03-12 23:30:21
...
Java8引入了一套全新的时间Api,自己在实际使用中会经常百度在某个场景下的api接口,所以这里做一个整理,会持续更新一些经常用到的示例.
获取当下的日期时间信息
// 获取当前日期
LocalDate curDate = LocalDate.now();
// 获取当前时间
LocalTime curTime = LocalTime.now();
// 获取当前年月日时分秒
LocalDateTime curDateTime = LocalDateTime.now();
// 输出 curDate : 2019-08-23
System.out.println("curDate : " + curDate);
// 输出 curTime : 15:12:58.750
System.out.println("curTime : " + curTime);
// 输出 curDateTime : 2019-08-23T15:12:58.750
System.out.println("curDateTime : " + curDateTime);
日期之间的比较
以LocalDate
为例.
LocalDate now = LocalDate.now();
LocalDate another = LocalDate.of(2019, 8, 23);
// 是否相等 输出:true
System.out.println(now.equals(another));
// 是否在另一个日期之后 输出:false
System.out.println(now.isAfter(another));
// 是否在另一个日期之前 输出:false
System.out.println(now.isBefore(another));
这里用到一个LocalDate.of()
的方法,所得即你所见,方法里没有隐藏逻辑,你输入的就是你拿到的日期.
一个日期到另一个日期的相差量
LocalDateTime now = LocalDateTime.of(2019, 8, 23, 15, 29, 0);
LocalDateTime another = LocalDateTime.of(2019, 7,20, 15, 18, 32);
long until = another.until(now, ChronoUnit.DAYS);
// 输出:34
System.out.println(until);
ChronoUnit
是个枚举类,还有时、分、,秒、纳秒等等。。。
加减一段时间
LocalDateTime now = LocalDateTime.now();
now.plusDays(long day);
now.plusMinutes(long minutes);
now.minusMonths(long thonths);
获取特定的周几
// 现在时间是周五
LocalDate now = LocalDate.now();
LocalDate monday = now.with(DayOfWeek.MONDAY);
// 输出:2019-08-19
System.out.println(monday);
// 周日
now = LocalDate.of(2019, 8, 25);
monday = now.with(DayOfWeek.MONDAY);
// 输出:2019-08-19
System.out.println(monday);
自定义格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd yyyy");