读Java实战(第二版)笔记06_新的日期和时间API
bigegpt 2024-10-25 10:23 36 浏览
1.Java 8之前的库对日期和时间的支持非常不理想
2.TemporalField接口
2.1.定义了如何访问temporal对象某个字段的值的接口
2.2.ChronoField枚举
2.2.1.实现TemporalField接口
3.LocalDate类
3.1.实例是一个不可变对象
3.2.只提供了简单的日期
3.3.不含当天的时间信息
3.4.不附带任何与时区相关的信息
3.5.LocalDate.of
3.5.1.静态工厂方法of创建一个LocalDate实例
3.6.LocalDate.now()
3.6.1.从系统时钟中获取当前的日期
3.7.LocalDate.parse
3.7.1.通过解析代表日期的字符串创建
3.8.getYear()
3.9.getMonthValue()
3.10.getDayOfMonth()
3.11.建议使用
4.ChronoLocalDate接口
4.1.尽量避免使用
4.1.1.开发者的代码中会做一些假设
4.1.2.这些假设在不同的日历系统中,有可能不成立
4.2.将程序的输入或者输出本地化时使用
5.历法系统
5.1.ISO-8601的历法系统
5.1.1.世界文明日历系统的事实标准
5.2.ThaiBuddhistDate
5.3.MinguoDate
5.4.JapaneseDate
5.5.HijrahDate
5.5.1.伊斯兰教日历
5.5.2.最复杂
5.5.3.乌姆库拉(Umm Al-Qura)变量
5.5.4.只能首先可见于沙特阿拉伯
6.LocalTime类
6.1.LocalTime.of
6.1.1.静态工厂方法of创建一个LocalTime实例
6.2.LocalTime.parse
6.2.1.通过解析代表时间的字符串创建
6.3.getHour()
6.4.getMinute()
6.5.getSecond()
7.DateTimeFormatter类
7.1.实例定义了如何格式化一个日期或者时间对象
7.2.字符串参数无法被解析为合法的LocalDate或LocalTime对象
7.2.1.DateTimeParseException异常
8.LocalDateTime类
8.1.LocalDate和LocalTime的合体
8.2.同时表示了日期和时间
8.3.不带有时区信息
8.4.toLocalDate
8.4.1.从LocalDateTime中提取LocalDate
8.5.toLocalTime
8.5.1.从LocalDateTime中提取LocalTime
8.6.atTime
8.6.1.向LocalDate传递一个时间对象
8.7.atDate
8.7.1.向LocalTime传递一个日期对象的方式
9.Instant类
9.1.java.time.Instant类
9.2.机器的日期和时间格式
9.2.1.为了便于机器使用
9.2.2.由秒及纳秒所构成的数字
9.2.3.无法处理时间单位
9.3.以Unix元年时间(传统的设定为UTC时区1970年1月1日午夜时分)开始所经历的秒数进行计算
9.4.Instant.ofEpochSecond
9.4.1.单参数
9.4.1.1.传递代表秒数的值创建一个该类的实例
9.4.2.双参数
9.4.2.1.接受第二个以纳秒为单位的参数值
9.4.2.2.对传入作为秒数的参数进行调整
9.4.2.3.纳秒分片在0到999999999之间
9.5.Instant.now()
9.5.1.获取当前时刻的时间戳
9.6.Instant.fromInstant()
9.7.toInstant()
9.8.弃用API跟新的日期和时间API之间执行互操作
10.Duration类
10.1.主要用于以秒和纳秒衡量时间的长短
10.2.不能仅向between方法传递一个LocalDate对象做参数
10.3.Duration.between
10.4.对象都是不可修改的
10.5.以两个temporal对象的差值的方式来定义它们的对象
11.Period类
11.1.Period.between
11.1.1.得到两个LocalDate之间的时长
11.2.对象都是不可修改的
11.3.以两个temporal对象的差值的方式来定义它们的对象
12.表示时间间隔的通用方法
12.1.
13.表示时间点的通用方法
13.1.
14.TemporalAdjusters类
14.1.方法名基本就是问题陈述
14.2.可以进行更加复杂的日期操作
14.2.1.不再局限于一次只能改变它的一个值,并且你还可按照需求定义自己的日期转换器
14.3.TemporalAdjusters.ofDateAdjuster
14.3.1.使用Lambda表达式定义TemporalAdjuster对象
14.3.2.接受一个UnaryOperator类型的参数
14.4.
15.DateTimeFormatter类
15.1.java.time.format包
15.2.线程安全
15.3.DateTimeFormatter.BASIC_ISO_DATE
15.3.1.20230202
15.4.DateTimeFormatter.ISO_LOCAL_DATE
15.4.1.2023-02-02
15.5.DateTimeFormatter.ofPattern
15.5.1.单参数
15.5.2.双参数
15.5.2.1.第二参数Locale的格式器
16.DateTimeFormatterBuilder类
16.1.区分大小写的解析
16.2.柔性解析
16.2.1.允许解析器使用启发式的机制去解析输入
16.2.2.不精确地匹配指定的模式
16.3.填充
16.4.在格式器中指定可选节
17.ZoneId类
17.1.java.time.ZoneId
17.2.无法修改的
17.3.时区处理
17.4.ZoneId.of
17.5.toZoneId()
17.6.
18.ZoneOffset类
18.1.ZoneId的一个子类
18.2.当前时间和伦敦格林尼治子午线时间的差异
18.3.偏差实际上对应的是美国东部标准时间
18.4.并未考虑任何夏令时的影响
18.5.大多数情况下,不推荐使用
相关推荐
- 当Frida来“敲”门(frida是什么)
-
0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...
- 服务端性能测试实战3-性能测试脚本开发
-
前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...
- Springboot整合Apache Ftpserver拓展功能及业务讲解(三)
-
今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...
- Linux和Windows下:Python Crypto模块安装方式区别
-
一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...
- Python 3 加密简介(python des加密解密)
-
Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...
- 怎样从零开始编译一个魔兽世界开源服务端Windows
-
第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...
- 附1-Conda部署安装及基本使用(conda安装教程)
-
Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...
- 如何配置全世界最小的 MySQL 服务器
-
配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...
- 如何使用Github Action来自动化编译PolarDB-PG数据库
-
随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...
- 面向NDK开发者的Android 7.0变更(ndk android.mk)
-
订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...
- 信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要
-
问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...
- OpenSSH 安全漏洞,修补操作一手掌握
-
1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...
- Linux:lsof命令详解(linux lsof命令详解)
-
介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...
- 幻隐说固态第一期:固态硬盘接口类别
-
前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...
- 新品轰炸 影驰SSD多款产品登Computex
-
分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...
- 一周热门
- 最近发表
-
- 当Frida来“敲”门(frida是什么)
- 服务端性能测试实战3-性能测试脚本开发
- Springboot整合Apache Ftpserver拓展功能及业务讲解(三)
- Linux和Windows下:Python Crypto模块安装方式区别
- Python 3 加密简介(python des加密解密)
- 怎样从零开始编译一个魔兽世界开源服务端Windows
- 附1-Conda部署安装及基本使用(conda安装教程)
- 如何配置全世界最小的 MySQL 服务器
- 如何使用Github Action来自动化编译PolarDB-PG数据库
- 面向NDK开发者的Android 7.0变更(ndk android.mk)
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)