前言

LocalDate、LocalTime、LocalDateTime这三个类是java8新提供的时间操作类

  • LocalDate: 主管yyyy-MM-dd这种形式,也就是只管:年-月-日
  • LocalTime: 主管HH:mm:ss这种形式,也就是只管:时:分:秒
  • LocalDateTime: yyyy-MM-dd HH:mm:ss 这种形式,也就是只管: 年-月-日 时:分:秒

案例

获取现在的时间对象:

static void testNow() {System.out.println(LocalDate.now());System.out.println(LocalTime.now());System.out.println(LocalDateTime.now());
}

使用of来具体定制时间

static void testOf() {System.out.println(LocalDate.of(2015, 12, 20));System.out.println(LocalTime.of(15, 36, 48));System.out.println(LocalDateTime.of(2013, 9, 21, 5, 58, 24));
}

各种条件的定位时间

凡是LocalDate各种操作之后,他都返回一个新的LocalDate对象,所以,你要接着这个新对象啊,你要是不用对象接着,那么就会看到不起作用,这样子好链式编程

static void testWith() {LocalDate localDate = LocalDate.of(2022, 10, 27);// 获取本月的第一天System.out.println("本月第一天:" + localDate.with(TemporalAdjusters.firstDayOfMonth()));// 获取本月的最后一天System.out.println("本月最后一天:" + localDate.with(TemporalAdjusters.lastDayOfMonth()));// 本年第一天System.out.println("本年第一天: " + localDate.with(TemporalAdjusters.firstDayOfYear()));// 本年最后一天System.out.println("本年最后一天: " + localDate.with(TemporalAdjusters.lastDayOfYear()));// 下一个周几的操作System.out.println("上周四: " + localDate.with(TemporalAdjusters.previous(DayOfWeek.THURSDAY)));System.out.println("下周四: " + localDate.with(TemporalAdjusters.next(DayOfWeek.THURSDAY)));// 本月第二周的周五System.out.println("本月第二周的周五: " + localDate.with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.FRIDAY)));// 下一个月的第一天System.out.println("下一个月的第一天: " + localDate.with(TemporalAdjusters.firstDayOfNextMonth()));// 加一天System.out.println("加一天: " + localDate.plusDays(1));// 加一周System.out.println("加一周: " + localDate.plusWeeks(1));// 加一个月System.out.println("加一个月: " + localDate.plusMonths(1));
}

with()方法:返回此日期的调整副本
TemporalAdjuster: 时间调节器,将一个时间调节成另外一个时间

同理,LocalTime和LocalDateTime也可以按照上面的方法来加减小时,分钟,秒等操作

时间的比较

这个之前比较时间都是getTime然后比较一下就行,现在LocalDate、LocalTime、LocalDateTime提供了isBefore、isAfter方法

static void testCompare() {LocalDate first = LocalDate.now();LocalDate second = LocalDate.of(2015, 12, 25);System.out.println(first.isBefore(second));System.out.println(first.isAfter(second));
}

Date 和 LocalDateTime相互转换

public static void main(String[] args) {System.out.println(dateToLocalDateTime(new Date()));System.out.println(localDateTimeToDate(LocalDateTime.now()));
}//java.util.Date类型转LocalDateTime
public static LocalDateTime dateToLocalDateTime(Date date) {Instant instant = date.toInstant();ZoneId zoneId = ZoneId.systemDefault();return instant.atZone(zoneId).toLocalDateTime();
}//java.time.LocalDateTime转java.util.Date
public static Date localDateTimeToDate(LocalDateTime localDateTime) {ZoneId zoneId = ZoneId.systemDefault();ZonedDateTime zdt = localDateTime.atZone(zoneId);return Date.from(zdt.toInstant());
}

有了LocalDateTime,你就可以操作获取LocalDate、LocalTime了,当然也就有转Date<–>LocalDate Date<–>LocalTime的操作

LocalDate、LocalTime、LocalDateTime使用与区别相关推荐

  1. java年月日时分秒格式_Java 日期时间 LocalDate LocalTime LocalDateTime类

    // LoacalDate, LocalTime, LocalDateTime类// 不要使用构造器来构造LocalDate类的对象.实际上,应该使用LocalDate.now()静态工厂方法代表你调 ...

  2. jdk8中新增的日期处理类LocalDate,LocalTime,LocalDateTime,ZoneId,ZonedDateTime详解

    基本概念 时刻 所有计算机系统内部都用一个整数表示时刻,这个整数是距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数,可以理解时刻就是绝对时间,它与时区无关; 不同时区对同一时刻的解读,即年月 ...

  3. 时间处理相关类(Calendar,Instant,LocalDate,LocalTime,LocalDateTime)

    Calendar Calendar的创建 Calendar calendar=Calendar.getInstance(); 获取当前时间的年,月,日,时,分,秒 System.out.println ...

  4. java8 时间处理 LocalDate LocalTime LocalDateTime 及毫秒转换

    LocalDate 各种和日期的操作,以天为最小单位,支持 日,月,年,星期的增加和减少,计算方便,格式化灵活.没有时分秒. LocalTime 没有日期,只是时间,就是时分秒,毫秒,可以选择不用毫秒 ...

  5. Java 8日期– LocalDate,LocalDateTime,即时

    Java 8 Date Time API is one of the most sought after change for developers. Java has been missing a ...

  6. java localdate_Java 时间类-Calendar、Date、LocalDate/LocalTime

    1.Date 类 java.util.Date是一个"万能接口",它包含日期.时间,还有毫秒数,如果你只想用java.util.Date存储日期,或者只存储时间,那么,只有你知道哪 ...

  7. mybatis java8_mybatis如何使用Java8的日期LocalDate和LocalDateTime详解

    前言 相信大家应该都知道,在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.d ...

  8. Java8 Date API 详解 - LocalDate,LocalDateTime,Instant

    转载来源:https://www.journaldev.com/2800/java-8-date-localdate-localdatetime-instant Java8 Date API 详解 - ...

  9. Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,

    Java8 ,LocalDate,LocalDateTime处理日期和时间工具类 日期格式化 1.获取今天的日期 2.在Java 8 中获取年.月.日信息 3.在Java 8 中处理特定日期 4.在J ...

  10. java8 mysql datetime_在JDBC中使用Java8的日期LocalDate、LocalDateTime

    在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是 ...

最新文章

  1. Making Sense of Cryptoeconomics
  2. CompletableFuture 创建异步对象
  3. 基于指数平滑对心电信号进行PQRST模拟(第二种方案)
  4. 学习MongoDB(三) Add an Arbiter to Replica Set 集群中加入仲裁节点
  5. 华为交换机配置syslog发送_华为/H3C Syslog配置
  6. Linux内核代码 分析大纲思维导图
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的智慧水产养殖系统
  8. 读书笔记∣疯狂XML讲义
  9. oracle xp 安装包资源
  10. 157. PHP 闭标签
  11. 南方科技大学计算机系师资,于仕琪 - 教师个人主页 - 南方科技大学
  12. [Altium Designer 2020 硬件设计]PCB封装库创建及3D模型添加
  13. python剪切文件到另外路径_python剪切文件
  14. 【UI界面开发】背包系统一般思路
  15. 今天生日,感概人生!
  16. 物联网模块的省电方法
  17. Android WebRtc 桌面投屏、视频源码
  18. 如何让精灵在不同的帧率下运动速度不变--Frame Rate Independent Movement
  19. GPU硬件加速的那些优秀的资源总结-续
  20. 啥是佩奇?用 Python 画给你看

热门文章

  1. 去哪儿攻略app v3.9.2 官方iphone版
  2. 使用Java打印字母菱形
  3. onSubmit 使用
  4. 跨系统角色转移服务器未响应,王者荣耀:跨系统角色转移真的来了,附详细操作内容注意事项...
  5. C++17 文件与目录操作 <filesystem>
  6. Android URL scheme跳转失败(源码实现排查思路知识拓展)
  7. Word图片显示不全解决
  8. self和Self、== 和===的区别
  9. DELAY_US()
  10. Android实现渐色变圆形