使用java8轻松处理日期
2015-08-20 10:00
369 查看
可能Oracle也意识到java处理日期的能力的不足,所以在Java8新增了 LocalDate和LocalTime接口。
众所周知java.util.Date的月份是从0开始算起~0代表一月,1代表二月~呵呵。
确实刚开始接触的时候笔者也用得很纠结~~很烦躁~不过Java8的LocalDate已经改进了这一点~~因为LocalDate的月份是利用枚举(enum)储存的。
妈妈再也不用担心我用错啦~~~
相信有读者已经发现~java.util.Date通用的可以储存年月日时分秒甚至毫秒~~而java8分成了两部分LocalDate和LocalTime。也就是说LocalDate用于存储处理年月日,LocalTime用于储存处理时分秒毫秒。~~分工明确~那么如果想要储存日期和时间呢?没事~还有一个LocalDateTime哈~
java.util.Date是这样的:
根据年月日获取可以这样写:
根据字符串获取:
要按照YYYY-MM-DD的形式,比如二月份不能写成2必须写成02才可以
如果取本月第一天可以这样写:
取本月第n天:
例如获取当前时间的写法是一样的:
构造时间分两种方法,第一种是利用一定格式的字符串:
最后说一下~~既然能够构造日期那么自然可以获取日期的值啦~获取的方法也十分方便~~不再多写直接上一幅图自己领悟吧~
众所周知java.util.Date的月份是从0开始算起~0代表一月,1代表二月~呵呵。
确实刚开始接触的时候笔者也用得很纠结~~很烦躁~不过Java8的LocalDate已经改进了这一点~~因为LocalDate的月份是利用枚举(enum)储存的。
妈妈再也不用担心我用错啦~~~
相信有读者已经发现~java.util.Date通用的可以储存年月日时分秒甚至毫秒~~而java8分成了两部分LocalDate和LocalTime。也就是说LocalDate用于存储处理年月日,LocalTime用于储存处理时分秒毫秒。~~分工明确~那么如果想要储存日期和时间呢?没事~还有一个LocalDateTime哈~
基本用法
获取当前时间与Java.util.Date的用法大同小异:java.util.Date是这样的:
Date date=new Date();刚new出来就有当前日期的信息,而LocalDate是这样用的:
LocalDate ld=LocalDate.now();是不是语义上更加易懂呢?一个now代表了当前时间。
根据年月日获取可以这样写:
LocalDate ld2=LocalDate.of(2015,12,30);注意上面月份中的12就是代表12月而不是“13月”了~~哈哈
根据字符串获取:
LocalDate ld3=LocalDate.parse("2015-08-20");根据字符串获取LocalDate格式上有一定要求:
要按照YYYY-MM-DD的形式,比如二月份不能写成2必须写成02才可以
如果取本月第一天可以这样写:
LocalDate firstDay=ld3.with(TemporalAdjuster.firstDayOfMonth());取本月最后一天也差不多写法:
LocalDate lastDat=ld3.with(TemporalAdjusters.lastDayOfMonth());
取本月第n天:
LocalDate day=ld3.withDayOfMonth(n);取当前日期的下一天:
LocalDate nextDay=lastday.piusDays(1);取15年八月份第一个星期一:
LocalDate firstMonday = LocalDate.parse("2015-08-20").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
下面是LocalTime的用法
LocalTime的用法与Locald的用法差不多例如获取当前时间的写法是一样的:
LocalTime now=LocalTime.now();这样就可以获取到当前时间的时分秒
构造时间分两种方法,第一种是利用一定格式的字符串:
LocalTime time=LocalTime.parse("09:52:00");第二种是:
LocalTime zero = LocalTime.of(9, 52, 0);
最后说一下~~既然能够构造日期那么自然可以获取日期的值啦~获取的方法也十分方便~~不再多写直接上一幅图自己领悟吧~
相关文章推荐
- 使用eclipse的某些快捷方法
- 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
- 【Java基础】BigDecimal
- 关于Java集合的小抄
- Java性能优化(3):通过私有构造函数强化不可实例化的能力
- java.lang.NoSuchMethodError: com.chenlb.mmseg4j.analysis..<init>(Lcom/chenlb/mmseg4j/Seg;)V
- ubuntu14.04下配置jdk环境
- Spring + Activiti + Drools整合的请假例子
- Java 线程生命周期
- Java学习之路0715(二)(变量的使用、声明,赋值,运算符,控制语句)
- Java多线程--创建线程
- java读入txt时去除两端的空格
- Java之美[从菜鸟到高手演变]之智力题【史上最全】
- Java之美[从菜鸟到高手演变]之Java学习方法
- 【Java】Eclipse最实用的快捷键(持续更新)
- java mavn 3.内置隐式变量
- Java反射
- 远程通讯之rmi开发案例2---用spring3实现rmi功能
- 将新版Android的Apidemos导入到Eclipse工作区中
- @Resource注解