LocalDate、LocalTime、LocalDateTime使用与区别
前言
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使用与区别相关推荐
- java年月日时分秒格式_Java 日期时间 LocalDate LocalTime LocalDateTime类
// LoacalDate, LocalTime, LocalDateTime类// 不要使用构造器来构造LocalDate类的对象.实际上,应该使用LocalDate.now()静态工厂方法代表你调 ...
- jdk8中新增的日期处理类LocalDate,LocalTime,LocalDateTime,ZoneId,ZonedDateTime详解
基本概念 时刻 所有计算机系统内部都用一个整数表示时刻,这个整数是距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数,可以理解时刻就是绝对时间,它与时区无关; 不同时区对同一时刻的解读,即年月 ...
- 时间处理相关类(Calendar,Instant,LocalDate,LocalTime,LocalDateTime)
Calendar Calendar的创建 Calendar calendar=Calendar.getInstance(); 获取当前时间的年,月,日,时,分,秒 System.out.println ...
- java8 时间处理 LocalDate LocalTime LocalDateTime 及毫秒转换
LocalDate 各种和日期的操作,以天为最小单位,支持 日,月,年,星期的增加和减少,计算方便,格式化灵活.没有时分秒. LocalTime 没有日期,只是时间,就是时分秒,毫秒,可以选择不用毫秒 ...
- Java 8日期– LocalDate,LocalDateTime,即时
Java 8 Date Time API is one of the most sought after change for developers. Java has been missing a ...
- java localdate_Java 时间类-Calendar、Date、LocalDate/LocalTime
1.Date 类 java.util.Date是一个"万能接口",它包含日期.时间,还有毫秒数,如果你只想用java.util.Date存储日期,或者只存储时间,那么,只有你知道哪 ...
- mybatis java8_mybatis如何使用Java8的日期LocalDate和LocalDateTime详解
前言 相信大家应该都知道,在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.d ...
- Java8 Date API 详解 - LocalDate,LocalDateTime,Instant
转载来源:https://www.journaldev.com/2800/java-8-date-localdate-localdatetime-instant Java8 Date API 详解 - ...
- Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,
Java8 ,LocalDate,LocalDateTime处理日期和时间工具类 日期格式化 1.获取今天的日期 2.在Java 8 中获取年.月.日信息 3.在Java 8 中处理特定日期 4.在J ...
- java8 mysql datetime_在JDBC中使用Java8的日期LocalDate、LocalDateTime
在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是 ...
最新文章
- Making Sense of Cryptoeconomics
- CompletableFuture 创建异步对象
- 基于指数平滑对心电信号进行PQRST模拟(第二种方案)
- 学习MongoDB(三) Add an Arbiter to Replica Set 集群中加入仲裁节点
- 华为交换机配置syslog发送_华为/H3C Syslog配置
- Linux内核代码 分析大纲思维导图
- 基于JAVA+SpringBoot+Mybatis+MYSQL的智慧水产养殖系统
- 读书笔记∣疯狂XML讲义
- oracle xp 安装包资源
- 157. PHP 闭标签
- 南方科技大学计算机系师资,于仕琪 - 教师个人主页 - 南方科技大学
- [Altium Designer 2020 硬件设计]PCB封装库创建及3D模型添加
- python剪切文件到另外路径_python剪切文件
- 【UI界面开发】背包系统一般思路
- 今天生日,感概人生!
- 物联网模块的省电方法
- Android WebRtc 桌面投屏、视频源码
- 如何让精灵在不同的帧率下运动速度不变--Frame Rate Independent Movement
- GPU硬件加速的那些优秀的资源总结-续
- 啥是佩奇?用 Python 画给你看
热门文章
- 去哪儿攻略app v3.9.2 官方iphone版
- 使用Java打印字母菱形
- onSubmit 使用
- 跨系统角色转移服务器未响应,王者荣耀:跨系统角色转移真的来了,附详细操作内容注意事项...
- C++17 文件与目录操作 <filesystem>
- Android URL scheme跳转失败(源码实现排查思路知识拓展)
- Word图片显示不全解决
- self和Self、== 和===的区别
- DELAY_US()
- Android实现渐色变圆形