`

Java8 随笔记录(六)

    博客分类:
  • jdk8
阅读更多

在java8中引入了新的日期和时间库,整合了很多Joda-Time的一些特性。

1)LocalDate + LocalTime + LocalDateTime

public void testLocalDate(){
     LocalDate date = LocalDate.of(2016, 05, 22);
println(date.getYear());        //2016
println(date.getMonth());       //MAY
println(date.getMonthValue());	//5
println(date.getDayOfYear());	//143
println(date.getDayOfMonth());	//22
println(date.getDayOfWeek());	//SUNDAY
println(date.lengthOfYear());	//366
println(date.lengthOfMonth());	//31
println(date.isLeapYear());	//true
println(date.now());	//2016-05-22
println(date.toEpochDay());	//16943
LocalDate d = date.parse("2016-05-22"); //此处指允许使用ISO_LOCAL_DATE格式
println(d);
}
public void testLocalTime(){
LocalTime time = LocalTime.of(13, 04);
println(time.getHour());        //13
println(time.getMinute());      //4
println(time.getSecond());	//0
println(time.getNano());	//0
time = LocalTime.parse("13:04:59");  //此处也只允许使用ISO_LOCAL_TIME格式
println(time);
}

public void testLocalDateTime(){
LocalDate date = LocalDate.of(2016, 05, 22);
LocalTime time = LocalTime.of(13, 04);
LocalDateTime ldt = LocalDateTime.of(date, time);
}

 

2)Duration(持续时间) + Period(一段时间)

public void testDurationAndPeriod(){
     println(Duration.ofDays(7));   // PT168H
     println(Duration.ofMinutes(7));   // PT7M
     println(Duration.of(7, ChronoUnit.DAYS)); // PT168H
     println(Period.ofDays(7));   // P7D
     println(Period.ofWeeks(7));	// P49D
     println(Period.of(1, 1, 7)); // P1Y1M7D
}

还包含以下其他的方法:

between: 创建两个时间点之间的interval(间隔)。

from: 由一个临时时间点创建interval。

of: 由它的组成部分创建interval。

parse: 由字符串创建interval。

addTo: 创建该interval的副本,并将其叠加到某个指定的temporal对象。

get: 读取该interval的状态。

isNegative: 检查该interval是否为负值,不包含0。

isZero: 检查该interval的时长是否为0。

minus: 通过减去一定的时间创建该interval的副本。

multipliedBy: 将interval的值乘以某个标量创建该interval的副本。

negated: 以忽略某个时长的方式创建该interval的副本。

plus: 以增加某个指定时长的方式来创建该interval的副本。

subtractFrom: 以指定的temporal对象减去该interval。

 

 

3)LocalDate对象的相关操作

public void testLocalDateOperation(){
     LocalDate date = LocalDate.of(2016, 05, 22);
     // 以绝对方式修改
     date = date.withYear(2017);
     println(date);  // 2017-05-22
     date = date.withMonth(10);
     println(date);	// 2017-10-22
     date = date.withDayOfMonth(7);
     println(date);	// 2017-10-07
     // 以相对方式修改
     date = date.plusYears(3);
     println(date);	// 2020-10-07
     date = date.minusMonths(9);
     println(date);	// 2020-01-07
     date = date.plusDays(6);
     println(date);	// 2020-01-13
}

还可以使用java.time.temporal.TemporalAdjusters来进行操作:

dayOfWeekInMonth: 返回同一个月中第x周的第y天,x为负数,则表示相对当前天的上一周。

firstDayOfMonth: 返回当前月的第一天。

firstDayOfNextMonth: 返回下个月的第一天。

firstDayOfNextYear: 返回下年的第一天。

firstDayOfYear: 返回当年的第一天。

firstInMonth: 返回同一个月中,第一个符合指定星期数的日期。

lastDayOfMonth: 返回下个月的最后一天。

lastDayOfYear: 返回今年的最后一天。

lastInMonth: 返回同一个月中,最后一个符合指定星期数的日期。

next/previous: 返回当前日期向前或向后,第一个符合指定星期数的日期(不包含自己)。

nextOrSame/previousOrSame: 在上一条的基础上,把当前日期值(自己)也放进去计算。 

 

还有一些比如时区、历法这些的就不介绍了。

分享到:
评论

相关推荐

    java记录随笔

    java记录随笔

    ubuntu搭建Java项目运行环境-随笔记录.rar

    简单记录了基于Ubuntu系统中搭建jdk1.8、mysql5.7、Tomcat9环境的方式,同时记录了修改数据库用户密码的过程

    java的基础性小结与笔记

    随笔记录java的一些基础知识,不停更新中.... 各个章节稍微有点乱,想起来的时候,可以查看一些知识点。 能简单帮助自己复习一下基础知识与原理性知识。

    JavaThings:共享与Java相关的东西-Java安全漫谈笔记相关内容

    JavaThings-Java安全漫谈笔记相关《 Java安全漫谈》是我在写的一点Java学习相关的随笔,不是很严谨,也不是啥高科技。这个存储库主要是记录并整理一下,附加一些代码。Java安全漫谈目录 人口统计字节码:远程字节码...

    Android App_云随笔课程设计

    现需要开发一款云随笔app,为了方便用户可以方便快捷的记录自己的日常生活、包括旅游、心事、学习笔记等等。用户填写的记录将会同步到云端以免数据的丢失,后继需要添加上传图片功能、云端数据的下拉

    基于JAVA的幼儿园家园共育平台设计与实现-需求.zip

    开发工具:六年特雷利JIDEA 基于JAVA幼儿园家园共育平台是针对幼儿园家校沟通的系统平台。 该平台面向幼儿园教师及家长,是促进家园共育的综合解决方案。它以幼儿在学前教育阶段的成长为核心,以家园互动为基础,...

    java源码博客-source:个人博客,记录一些学习和实践的总结

    java 源码 博客 一杯82年的JAVA 大家好,我是练习时常两年半的JAVA练习生,爱好是 ...博客专用仓库,主要记录一些学习和实践的总结,感兴趣的朋友可以点个watch或star。 随笔 探索JAVA并发 从0.5到1写个RPC框架

    java版植物大战僵尸源码-Todo:定个计划好好学习

    列表参考国光大佬的国光的安全随笔记录 安全技能 该技能表不用按顺序进行学习,但是比较高级的我会放最后面,因为我也不会,需要花时间慢慢加。 总结我这几年的一点经验:安全需要学习的技术太多了,特别是红队、...

    MFC读取Execl文件.docx

    mfc使用OLE读取Excel文件,工作中的随笔,小小记录下。借鉴了很多大神的博客,如有侵权,请联系删除,谢谢!

    JVM自动内存管理机制

    Java自动内存管理机制包含两部分:内存分配和内存回收,要想理解内存分配和回收的机制,则需要了解下Java内存区域(Java运行时数据区),这篇随笔将按照下面的线索进行逐步解析:1.Java运行时数据区2.对象“已死”的...

    MiaoWu:毕业设计-流浪猫收养系统

    MiaoWu毕业设计-流浪猫收养系统过程随笔记录通知:1.用户关注用户2.关注的用户发帖3.帖子审核结果4.领养申请5.领养审核结果发帖:需发帖人有联系方式帖子详情页 数据获取顺序调整实现头像修改功能修改记录1.修改猫咪...

    eternidad33.github.io:不定期更新的Hugo博客,主要记录技术文章,现已经部署在Gitee和GitHub上,主题是Zzo

    - java categories : - 随笔 --- 更多信息配置,例如: --- title : "标题" date : " 2020-08-07 " description : 文章摘要 # 隐藏目录 hideToc : false #生成目录 enableToc : true # 博客展示目录 ...

    Front-end-study-notes:顾名思义,前端学习笔记。里面包括的不仅仅是前端。扎根基础,不做浮水之萍

    是我学习前端知识的随笔,记录着我的理解。 从2020年5月28日开始在GitHub上写笔记,之前一直是在自己电脑上写笔记。 希望能给大家带来帮助(目前还不是很完善,后面会一一补充) [toc] 目录 留着再链接到下面的内容...

    oSIP开发者手册

    转载的关于Osip的简介,以及基本的原理介绍等

    asp.net知识库

    如何解决ACCESS中SELECT TOP语句竟然返回多条记录的问题? Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using...

Global site tag (gtag.js) - Google Analytics