【JavaSE】时间类相关API以及使用

目录

时间类相关API

         1.Date类

2.SimpleDateFormat类

3.Calendar类

4.JDK8-时区,时间和格式化

5.JDK8-日历和工具类


时间类相关API

        以下内容是通过观看黑马java的常见API视频总结加笔记,其中有JDK7以及以前的时间类,包括:Date,SimpleDateFormat,Calendar三个类以及JDK8新增时间相关类,及他们的详细用法。JDK7时间相关类在多线程环境下会导致数据安全的问题。JDK8的时间日期对象都是不可变的,解决了这个问题。

以前世界标准时间是格林尼治时间/格林威治时间简称GMT。

现在世界标准时间UTC已经替换为:原子钟。时间原点:1970年1月1日00:00:00。

中国的标准时间:世界标准时间+8小时

1.Date类

Date类是JDK写好的javabean类,在util包下,用来描述时间,精确到毫秒。利用空参构造创建的对象,默认表示系统当前的时间。利用有参构造创建的对象,表示指定的时间。get,set方法,均用long类型表示时间,可以用来获取时间,或者赋值时间。

2.SimpleDateFormat类

作用:

1.因为Date类只能按照默认样式展示,所以我们需要通过SimpleDateFormat类来将时间按照我们想要的方式进行表达。

2.可以字符串表示的时间变成Date对象。

 我们可以在java帮助文档中查找如何进行格式化表示:

 下面进行代码练习和运行结果:

3.Calendar类

Calendar代表了系统当前时间的日历对象,可以单独修改,获取时间中的年,月,日,非常便利。

注意:Calendar是一个抽象类,不能直接实例化对象。需要通过以下方法得到实例化对象:

Calendar c=Calendar.getInstance();

 底层原理,根据系统的不同时区来返回不同的日历对象。

 Calendar类中的常用方法:

tips:

  1.  该类中用0-11表示月份,0表示一月
  2. 在外国人眼中,星期日是一周中的第一天,1(星期日)2(星期一)......  7(星期六)

下面是代码练习和运行结果

4.JDK8-时区,时间和格式化

JDK7时间相关类在多线程环境下会导致数据安全的问题。

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

1. ZoneId是一个时区类,可以进行时区相关操作

需要注意的是该类中的时区没有北京,我们一般使用上海。可以通过下面方法来获取默认时区或者指定任意时区。

Set<String> zoneIds= ZoneId.getAvailableZoneIds();
        System.out.println(zoneIds.size());
        System.out.println(zoneIds);

        ZoneId zoneId=ZoneId.systemDefault();//获取默认时区
        System.out.println(zoneId);

        ZoneId zoneId1=ZoneId.of("Etc/GMT+8");//指定时区
        System.out.println(zoneId1);

2.Instant是一个时间戳类,下面列举常用方法:

3. ZoneDateTime是一个带有时区的时间,下面是常用方法:

 4.SimpleDateFormat是一个日期格式化类,用于时间的格式化和解析,常用两个方法:

5.JDK8-日历和工具类

日历类有三个:LocalDate表示年,月,日   LocalTime表示时,分,秒  LocalDateTime表示年,月,日,时,分,秒。常见方法如下

可以发现JDK8新增时间类中对时间的增删改查方法类似,均是使用get,with,minus,plus开头的方法,我们也可以凭借这方便记忆。

工具类也有三个都是用来计算时间间隔的:Duration(侧重于秒,纳秒)  Period(侧重于年月日) ChronoUnit(适用于所有单位)

 

 

工具类中ChronoUnit是最方便的一个,也是我们计算时间间隔的首选。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/423596.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp npx update-browserslist-db@lates 问题解决

在uniapp运行项目时&#xff0c;会有这种报错&#xff0c;其实这是表明browserslistlatest版本低了&#xff0c;在催你升级版本&#xff0c;browserslistlatest是用来支持解析css用的&#xff0c;当然&#xff0c;你也可以直接忽略这个报错提示&#xff0c;也可以正常运行项目。…

C++设计超市管理系统

需求:超市中商品分为四类:食品、化妆品、日用品和饮料。每种商品包含条码号、商品名称、价格、库存和生产厂家、品牌、生产日期、保质期等信息。实现按条码号、商品名称、价格、品牌、库存、临期产品、过期产品查询的功能。实现对商品的销售、统计和新增、删除、补库存等简单…

【 C++ 】空间配置器

1、什么是空间配置器 空间配置器&#xff0c;顾名思义就是为各个容器高效的管理空间(空间的申请与回收)的&#xff0c;在默默地工作。虽然在常规使用STL时&#xff0c;可能用不到它&#xff0c;但站在学习研究的角度&#xff0c;学习它的实现原理对我们有很大的帮助。 2、为什…

一个基于轮询的广告系统

无论PC 客户端还是手机客户端&#xff0c;可能会遇到需要发布一些广告&#xff0c;这些广告可能是自己开发的&#xff0c;可能是三方的&#xff0c;而且希望是比较通用&#xff0c;能随时发布&#xff0c;随时就能看到效果。 本文提供了一种基于轮询的广告系统&#xff0c;主要…

Python编程作业四:文件操作

目录 一、程序填空1 二、程序填空2 三、众数及词频统计 四、输入古诗并保存 编程素材下载地址&#xff1a;https://download.csdn.net/download/Morse_Chen/88887335?spm1001.2014.3001.5503 一、程序填空1 下面的程序是根据用户输入的星座名称&#xff0c;输出此星座的出…

【C++】面向对象 | 类详解 | this指针

目录 1. 面向过程和面向对象 2. 类的引入 3. 类的定义 4. 类的访问限定符及封装 4.1 访问限定符 4.2 封装 5. 类的作用域 6. 类的实例化 7. 类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结构体内存对齐规则 8. this指针 8.1 this指针的引出 8.2 this指针…

基于PyTorch深度学习实战入门系列-(1)环境配置

Pytorch环境安装配置2024最新版 下载安装Anaconda Anaconda下载网址&#xff1a;Free Download | Anaconda 创建虚拟环境 打开Anaconda Prompt # conda create -n 环境名 [需要的库] # 例子&#xff1a; conda create -n pytorchpy39 python3.9安装过程中需要确认输入 y 回车…

Filebeat将csv导入es尝试

一、安装 在docker中安装部署ELKfilebeat 二、主要配置 - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /home/centos/pip_v2.csv #源路径 #…

1908 - 伐木工

代码 #include<bits/stdc.h> using namespace std; long long a[1000100],n,m,l1,r,mid,i; bool fm(long long x) {long long s0;for(i1;i<n;i){if(x<a[i]) ssa[i]-x;if(s>m) return true;}return false; } int main() {cin>>n>>m;for(i1;i<n;i…

简易内存池2 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 请实现一个简易内存池,根据请求命令完成内存分配和释放。 内存池支持两种操作命令&#xff0c;REQUEST和RELEASE&#xff0c;其格式为: REQUEST请求的内存大小 …

Day21-磁盘管理之raid及分区

Day21-磁盘管理之raid及分区 1 Raid技术1.1 什么是Raid?1.2 为什么服务器需要Raid?1.3 什么是Raid级别?1.4 Raid有哪些实现方式&#xff1f;1.5 什么是RAID0&#xff1f;&#xff08;图&#xff09;1.6 什么是RAID1&#xff1f;&#xff08;图&#xff09;1.7 什么是RAID5&a…

Python之Flask框架~四大内置对象

1.g global全局对象 g对象是专门用来保存用户的数据的 g对象在一次请求中的所有的代码的地方, 都是可以使用的 突破变量存储位置限制,为数据传递添加了新的方式,比如我们在before_request产生一个数据在后面需要使 用, 可以保存在g对象中, 在其他视图西数中就可以使用这个数据…

LaTeX-设置图像大小

文章目录 LaTeX-设置图像大小1.导入图片2.更改图像大小并旋转图像2.1按比例缩放2.2将图像缩放到特定的宽度和高度2.3将图片设置为与文字宽度相同2.4旋转图片 LaTeX-设置图像大小 在本文中&#xff0c;将解释如何以最常见的格式包含图像&#xff0c;如何缩小、放大和旋转它们。…

Day11:信息打点-Web应用企业产权指纹识别域名资产网络空间威胁情报

目录 Web信息收集工具 业务资产-应用类型分类 Web单域名获取-接口查询 Web子域名获取-解析枚举 Web架构资产-平台指纹识别 思维导图 章节知识点&#xff1a; Web&#xff1a;语言/CMS/中间件/数据库/系统/WAF等 系统&#xff1a;操作系统/端口服务/网络环境/防火墙等 应用…

考研机试C++题目精选

更多内容会在godownio.github.io更新 算法练习&#xff08;C代码&#xff09; 考研上机或C语言代码笔试准备&#xff0c;暨大机试原题letcode牛客中南大等高校机试 快速幂算法 题目&#xff1a;输入一个整数 n &#xff0c;求 n^n 的个位数是多少。 快速幂算法&#xff1a;…

集合篇之ArrayList

一、源码如何分析&#xff1f; 1.成员变量 2.构造方法 3.关键方法 一些添加的方法。 二、debug看源码 我们给出下面代码&#xff1a; public void test01() {ArrayList<Integer> list new ArrayList<>();list.add(1);for (int i 2; i < 10; i) {list.add(i…

Java虚拟机(JVM)从入门到实战【上】

Java虚拟机&#xff08;JVM&#xff09;从入门到实战【上】&#xff0c;涵盖类加载&#xff0c;双亲委派机制&#xff0c;垃圾回收器及算法等知识点&#xff0c;全系列6万字。 一、基础篇 P1 Java虚拟机导学课程 P2 初识JVM 什么是JVM Java Virtual Machine 是Java虚拟机。…

Flutter中Future和Stream关系

Future和Stream类是Dart异步编程的核心。 Future 表示一个不会立即完成的计算过程。与普通函数直接返回结果不同的是异步函数返回一个将会包含结果的 Future。该 Future 会在结果准备好时通知调用者。 Stream 是一系列异步事件的序列。其类似于一个异步的 Iterable&#xff0c;…

(三)softmax分类--九五小庞

softmax分类 对数几率回归解决的是二分类的问题&#xff0c;对于多个选项的问题&#xff0c;我们可以使用softmax函数&#xff0c;它是对数几率回归在N个可能不同的值上的推广 softmax各样本分量之和为1&#xff0c;当只有两个类别时&#xff0c;与对数几率回归完全相同 损失…

多个版本的Python如何不冲突?

转载文章&#xff0c;防止忘记或删除 转载于&#xff1a;电脑中存在多个版本的Python如何不冲突&#xff1f; - 知乎 (zhihu.com) 如何安装多版本的Python并与之共存&#xff1f; 如果你的工作涉及到Python多版本之间开发或测试&#xff0c;那么请收藏本文&#xff0c; 如果你…