LocalDate
java中做时间处理时一般会采用java.util.Date,但是相比于Date来说,还有更好的选择 -- java.time.LocalDate。
这是jdk8中新增的日期处理类,同时新增的还有java.time.LocalTime、java.time.LocalDateTime等。大多吐槽Date的是其对于月份的处理是从0开始的,取得正确月份还得往后偏移一位。Date内容很丰富,不但包含年月日,还包含时间。
相比Date来说,LoalDate更安全、更精确也更明确。LocalDate不包含时间,只是单纯的年月日,要精确到时分秒甚至毫秒的就需要用java.time.LocalDateTime了。
// 取当前日期:
LocalDate today = LocalDate.now(); // -> 2014-12-24
// 根据年月日取日期:
LocalDate crischristmas = LocalDate.of(2014, 12, 25); // -> 2014-12-25
// 根据字符串取:
LocalDate endOfFeb = LocalDate.parse("2014-02-28"); // 严格按照ISO yyyy-MM-dd验证,02写成2都不行,当然也有一个重载方法允许自己定义格式
LocalDate.parse("2014-02-29"); // 无效日期无法通过:DateTimeParseException: Invalid date
// 取本月第1天:
LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2017-03-01
// 取本月第2天:
LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2017-03-02
// 取本月最后一天,再也不用计算是28,29,30还是31:
LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2017-12-31
// 取下一天:
LocalDate firstDayOf2015 = lastDayOfThisMonth.plusDays(1); // 变成了2018-01-01
// 取2017年1月第一个周一,用Calendar要死掉很多脑细胞:
LocalDate firstMondayOf2015 = LocalDate.parse("2017-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2017-01-02
参考 https://www.cnblogs.com/jtools/p/6502999.html
LocalDate的更多相关文章
- Java 时间类-Calendar、Date、LocalDate/LocalTime
1.Date 类 java.util.Date是一个"万能接口",它包含日期.时间,还有毫秒数,如果你只想用java.util.Date存储日期,或者只存储时间,那么,只有你知道哪 ...
- Java 8 Date Time API Example Tutorial – LocalDate, Instant, LocalDateTime, Parse and Format
参考 Java 8 Date and Time API is one of the most sought after change for developers. Java has been mis ...
- Java中使用LocalDate根据日期来计算年龄
Java中和日期直接相关的类有很多,平时最常用到的就是java.util package下面的Date和Calendar,需要用到格式的时候还会用到java.text.SimpleDateFormat ...
- 在JDBC中使用Java8的日期LocalDate、LocalDateTime
在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是 ...
- LocalDate、LocalDateTime、LocalTime开发小结
在我之前的文章<[整理]Java 8新特性总结 >中有提到Date/Time API (JSR 310)对日期与时间的处理.它将服务端对时间的处理进行了统一,使得对时间的处理更加规范和统一 ...
- mybatis支持jdk8等localdate类型
大家知道,在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等 ...
- LocalDate的使用
LocalDate的一些使用方法 今天半天的时间都用在了LocalDate上,然后呢,也是自己的第一次写博客. 首先来看看会用上的方法吧. 两个构造器,用的是静态工厂方法 static Local ...
- JAVA 8 主要新特性 ----------------(七)新时间日期 API -----LocalDate
一.改版原因 1.老板的Date和Calander存在问题,日期操作名称混乱,有的在text下,有的在util下,包名混乱 2.Simple包混乱,致命错误线程不安全. ...
- (后端)mybatis中使用Java8的日期LocalDate、LocalDateTime
原文地址:https://blog.csdn.net/weixin_38553453/article/details/75050632 MyBatis的型处理器是属性“createdtime参数映射为 ...
随机推荐
- Sql server not in优化
使用EXISTS(或NOT EXISTS)通常将提高查询的效率,由于NOT IN子句将对子查询中的表执行了一个全表遍历. oracle在执行IN子查询过程中,先执行子查询结果放入临时表再进行主查询: ...
- Ubuntu 16.04 总出现红色圆圈警告和检测到系统程序出现问题
这种问题不可忽视!不可忽视!不可忽视!重要的事情说三遍!!!(一次死机,好多文件丢失,真是痛苦的经历) 自从从第三方安装了Python3.6,并将默认3.5改为3.6,导致ubuntu16.04右上角 ...
- Ansible------常用功能
local_action Ansible 默认只会对控制机器执行操作,但如果在这个过程中需要在 Ansible 本机执行操作就需要使用到local_action become:True Ansible ...
- RT throttling分析【转】
转自:https://blog.csdn.net/u012728256/article/details/72639612 Linux上调度策略为SCHED_FIFO的实时进程是根据优先级抢占运行的.当 ...
- C++设计模式——观察者模式
观察者模式 在GOF的<设计模式:可复用面向对象软件的基础>一书中对观察者模式是这样说的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动 ...
- openwrt MT7628 编译前更改为DHCP,root 密码、ssid、时区、主机名
一.设置为DHCP动态获取ip地址 在:/home/OpenWrt/openwrt_CC_mt76xx_zhuotk_source/ 目录下,新建文件名/files/etc/config. 将配置好的 ...
- scrapy_redis 相关: 查看保存的数据
0.参考资料 https://redis.io/topics/data-types-intro An introduction to Redis data types and abstractions ...
- Kafka集群搭建 (2.11-0.9.0.1)
之前写过kafka_2.9.2-0.8.2.2版本的安装,kafka在新的0.9版本以上改动比较大,配置和api都有很大更新,并且broker对应的partition支持多线程生产和消费,所以性能比之 ...
- 反转链表II(根据指定的索引,逆转链表)
反转从位置 m 到 n 的链表.请使用一趟扫描完成反转 思想:首先判断链表是否合法,并且判断输入的m和n是否合法 定义dummyHead结点,让它指向头结点的前驱,再定义cur,让它指向dummyHe ...
- Imcash:比特币减半 四年机遇你能否抓住?
减半到底是什么? 2010来,比特币已有4次下跌幅度达70%或更高. 2012年的11月份比特币减半,诞生了一次上涨10倍有余的超级牛市. 2016年7月,历史又是如此的相似,比特币产量又迎来了减半, ...