博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
猿来绘Java-39-JDK8的新日期时间类
阅读量:2095 次
发布时间:2019-04-29

本文共 1871 字,大约阅读时间需要 6 分钟。

从JDK 1.0开始就有了java.util.Date类,它的大多数方法在JDK 1.1引入Calendar类之后被弃用,而Calendar并不比Date好多少。

它们都面临的问题是:

可变性:日期和时间这样的类应该是不可变的

偏移性: Date中的年份是从1900开始的,而月份都从0开始。偏移量没有统一,容易出错,难记忆。

格式化:格式化只对Date有用, Calendar则不行。

它们也不是线程安全的

不能处理闰秒

Java 8中引入的java.time API 已经纠正了过去的缺陷,将来很长一段时间内它都会为我们服务。

Java 8 吸收了 Joda-Time 的精华(JDK8之前的需要自己手动引入jar包),如果你使用的是JDK8之前的版本,可以使用Joda-Time中的时间类。

新的 java.time 中包含了所有关于本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。历史悠久的 Date 类新增了 toInstant() 方法,用于把 Date 转换成新的表示形式。这些新增的本地化时间日期 API 大大简化了日期时间和本地化的管理。

 

 

@Testpublic void test3(){    //now():获取当前的日期、时间、日期+时间    LocalDate localDate = LocalDate.now();    LocalTime localTime = LocalTime.now();    LocalDateTime localDateTime = LocalDateTime.now();    System.out.println(localDate);    System.out.println(localTime);    System.out.println(localDateTime);    //of():设置指定的年、月、日、时、分、秒。没有偏移量    LocalDateTime localDateTime1 = LocalDateTime.of(2025, 1, 11, 22, 12, 43);    System.out.println(localDateTime1);    //getXxx():获取相关的属性    System.out.println(localDateTime.getDayOfMonth());    System.out.println(localDateTime.getDayOfWeek());    System.out.println(localDateTime.getMonth());    System.out.println(localDateTime.getMonthValue());    System.out.println(localDateTime.getMinute());    //体现不可变性,设置时会产生新的对象    //withXxx():设置相关的属性    LocalDate localDate1 = localDate.withDayOfMonth(22);    System.out.println(localDate);    System.out.println(localDate1);    LocalDateTime localDateTime2 = localDateTime.withHour(4);    System.out.println(localDateTime);    System.out.println(localDateTime2);    //不可变性    LocalDateTime localDateTime3 = localDateTime.plusMonths(3);    System.out.println(localDateTime);    System.out.println(localDateTime3);    LocalDateTime localDateTime4 = localDateTime.minusDays(6);    System.out.println(localDateTime);    System.out.println(localDateTime4);}

 

 

转载地址:http://etuhf.baihongyu.com/

你可能感兴趣的文章
Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
查看>>
JTS Geometry关系判断和分析
查看>>
GIS基本概念
查看>>
Java文件操作①——XML文件的读取
查看>>
java学习总结之文件操作--ByteArrayOutputStream的用法
查看>>
Java生成和操作Excel文件
查看>>
Java的三种代理模式
查看>>
java静态代理与动态代理简单分析
查看>>
JTS Geometry关系判断和分析
查看>>
阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了
查看>>
Intellij IDEA 使用技巧一
查看>>
idea如何显示git远程与本地的更改对比?
查看>>
Git 分支 - 分支的新建与合并
查看>>
git创建与合并分支
查看>>
23种设计模式介绍以及在Java中的实现
查看>>
如何把本地项目上传到Github
查看>>
Git的使用--如何将本地项目上传到Github
查看>>
zookeeper客户端命令行查看dubbo服务的生产者和消费者
查看>>
intellij idea 相关搜索快捷键
查看>>
oracle查看数据库连接池中最大连接数和当前用户连接数等信息
查看>>