JavaEE企业级开发中常用的JDK7和JDK8的时间类

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: JavaEE企业级开发中常用的JDK7和JDK8的时间类

JDK7时间类

全世界的时间有一个统一的计算标准

在同一条经线上的时间是一样的

格林威治时间 简称GMT

计算核心 地球自转一天是24小时 太阳直射正好是12小时

但是误差太大

现在用原子钟来代替

用铯原子震动的频率来计算时间,作为世界的标准时间UTC

中国标准时间等于世界标准时间加8小时

Date类

是JDK写好的一个javabean类,用来描述时间,精确到毫秒

利用空参构造创建的对象,默认表示系统当前的时间

利用有参构造创建的对象,表示指定的时间

创建对象表示一个时间

成员变量 fasttime 表示时间的毫秒值

空参方法 调用system类下的方法。

有参构造 把实参赋值给成员变量。

指的是从时间原点开始过了0毫秒后的时间

gettime方法可以获得当前时间的毫秒值

示例

打印时间原点 开始一年后 之后的时间

定义任意两个Date对象,比较哪个时间在前,哪个时间在后

对象不可直接比较 运算

要用方法把某些属性获取出来

总结

如何创建日期对象

空参构造

带参构造

如何修改时间对象里的毫秒值

如何获取时间对象里的毫秒值

SimpleDateFormat类

Date类只能是默认方式打印

这 不符合我们的阅读习惯

SimpleDateFormat

可以

把时间变为自己喜欢的格式

也可以解析时间

格式

利用空参构造创建对象

使用的是默认格式

利用带参构造创建对象

可以指定格式

ctrl alt v 可以自动生成左边 创建对象

ctrl alt m 可以抽取生成方法

创建对象的格式要和创建字符串的格式一样

然后解析

返回一个Date对象

练习1

输入字符串

用字符串接收

创建一个date对象表示

创建一个simpledateformat对象,并定义格式为年月日

转换时间

练习2

先解析时间得到毫秒值

得到date对象

再得到毫秒值

再进行判断

总结

SimpleDateFormat的两个作用

格式化

解析

如何指定格式

yyyy年MM月dd日:mm:ss

去Apl帮助文档中去找就ok了

Calendar类

为什么学习这个类呢

以前的方法

现在简化代码

只修改月份

日历 修改 再原来的基础上加1

所以Calendar类

代表了 系统当前时间的日历对象,可以单独修改

但是个抽象类

不能直接创建对象

而是通过静态方法来获取到子类对象

常用方法

示例

Date(0L)表示计算机的时间原点

月份0-11

如果获取出来的是0,就是1月

如果是11,就是12月

星期

在老外眼里,周日是一周中的第一天

1就是周日

Java为了防止我们忘记数组的索引

把索引都定义为常量

我们可以查看源码 来寻找

所以我们可以

我们可以利用查表法

将数据和索引产生对应的关系

这样就可以返回

修改年份 月份

用set方法

增加一个月,一年

总结

JDK8时间类

JDK7时间类

为什么要学习JDK8的时间类

因为简单而且方便

JDK7代码麻烦

要用日期对象计算比较毫秒值

JDK8代码简单

判断的方法

计算时间间隔的方法

安全层面

JDK7多线程环境下会导致数据安全问题

JDK8时间日期对象都是不可变的,解决了这个问题

分成四组

ZoneId类

获得时区名称 返回方式是集合

获取当前系统的默认时区

可以在系统设置里面更改日期和时间

改变时区

获得一个指定的时区

总结

Instant类

时间戳

方法大全

ctrl + alt + v 可以自动生成左边

获得当前的标准时间

根据 秒 毫秒 纳秒 获得Instant对象

获得了计算机原点的时间

秒钟

获得秒数

纳秒

获得纳秒

时间原点后过了多少纳秒

指定时区

判断系列的方法

返回值是布尔类型

减少时间系列的方法

以当前时间为基准,往前去减少时间

原有的时间对象是不会变的

会返回一个新的时间对象

增加时间系列的方法

同减少时间系列的方法

ZoneDateTime类

带有时区的时间

静态方法获取对象

减少时间增加时间

可以增加时间 年 月 日

细节

JDK8的时间对象都是不可变的

我们修改了 只能产生新的时间对象

DateTimeFormatter类

用于时间的格式化和解析

获取时间对象

解析/格式化器

格式化

格式化时间的意思是 把时间转化成我们日常可见的格式

转化成我们需要的格式

Calendar类

Localdate获得年月日

转换

调用方法

获得的月份英文大写

获得的月份数字

获得日期

获取一年中的第几天

获取星期

get开头 获取

看见要知道意思

案例

假设为联通移动发送生日祝福短信

Localtime获得时分秒

LocalDateTime 年月日时分秒

Duration类

用于计算时间间隔 秒 纳秒

Period类

用于计算日期间隔 年月日

ChronnUnit类

用于计算日期间隔

所有的数据全出来

总结

https://blog.csdn.net/qq_30500575/article/details/137155428?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22137155428%22%2C%22source%22%3A%22qq_30500575%22%7D

个人号推广

博客主页

多多!-CSDN博客

Web后端开发

https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482

Web前端开发

https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482

数据库开发

https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482

项目实战

https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482

算法与数据结构

https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482

计算机基础

https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482

回忆录

https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482

目录
相关文章
|
3月前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
83 2
|
1月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
72 1
|
2月前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
37 1
|
2月前
|
Java 关系型数据库 开发工具
idea创建不了spring2.X版本,无法使用JDK8,最低支持JDK17 , 如何用idea创建spring2.X版本,使用JDK8解决方案
本文提供了解决方案,如何在IDEA中创建Spring 2.X版本的项目并使用JDK8,尽管Spring 2.X已停止维护且IDEA不再直接支持,通过修改pom.xml或使用阿里云的国内源来创建项目。
144 0
idea创建不了spring2.X版本,无法使用JDK8,最低支持JDK17 , 如何用idea创建spring2.X版本,使用JDK8解决方案
|
2月前
|
Oracle Java 关系型数据库
jdk17安装全方位手把手安装教程 / 已有jdk8了,安装JDK17后如何配置环境变量 / 多个不同版本的JDK,如何配置环境变量?
本文提供了详细的JDK 17安装教程,包括下载、安装、配置环境变量的步骤,并解释了在已有其他版本JDK的情况下如何管理多个JDK环境。
1477 0
|
3月前
|
Java API 开发者
【Java字节码操控新篇章】JDK 22类文件API预览:解锁Java底层的无限可能!
【9月更文挑战第6天】JDK 22的类文件API为Java开发者们打开了一扇通往Java底层世界的大门。通过这个API,我们可以更加深入地理解Java程序的工作原理,实现更加灵活和强大的功能。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来!
|
3月前
|
Java API 开发者
【Java字节码的掌控者】JDK 22类文件API:解锁Java深层次的奥秘,赋能开发者无限可能!
【9月更文挑战第8天】JDK 22类文件API的引入,为Java开发者们打开了一扇通往Java字节码操控新世界的大门。通过这个API,我们可以更加深入地理解Java程序的底层行为,实现更加高效、可靠和创新的Java应用。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来,并积极探索类文件API带来的无限可能!
|
4月前
|
存储 Java
【Java集合类面试七】、 JDK7和JDK8中的HashMap有什么区别?
JDK7中的HashMap使用数组加链表解决冲突,而JDK8增加了红黑树结构以优化链表过长时的性能,提高查找效率。
|
4月前
|
Oracle Java 关系型数据库
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
|
4月前
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的