关于java的基本知识(读Java实战第二版笔记06)
读Java实战(第二版)笔记06_新的日期和时间API
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.of3.5.1.静态工厂方法of创建一个LocalDate实例3.6.LocalDate.now()3.6.1.从系统时钟中获取当前的日期3.7.LocalDate.parse3.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.ThaiBuddhistDate5.3.MinguoDate5.4.JapaneseDate5.5.HijrahDate5.5.1.伊斯兰教日历5.5.2.最复杂5.5.3.乌姆库拉(Umm Al-Qura)变量5.5.4.只能首先可见于沙特阿拉伯6.LocalTime类6.1.LocalTime.of6.1.1.静态工厂方法of创建一个LocalTime实例6.2.LocalTime.parse6.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.toLocalDate8.4.1.从LocalDateTime中提取LocalDate8.5.toLocalTime8.5.1.从LocalDateTime中提取LocalTime8.6.atTime8.6.1.向LocalDate传递一个时间对象8.7.atDate8.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.ofEpochSecond9.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.between10.4.对象都是不可修改的10.5.以两个temporal对象的差值的方式来定义它们的对象11.Period类11.1.Period.between11.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.ofDateAdjuster14.3.1.使用Lambda表达式定义TemporalAdjuster对象14.3.2.接受一个UnaryOperator类型的参数14.4.
15.DateTimeFormatter类15.1.java.time.format包15.2.线程安全15.3.DateTimeFormatter.BASIC_ISO_DATE15.3.1.2023020215.4.DateTimeFormatter.ISO_LOCAL_DATE15.4.1.2023-02-0215.5.DateTimeFormatter.ofPattern15.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.ZoneId17.2.无法修改的17.3.时区处理17.4.ZoneId.of17.5.toZoneId()17.6.
18.ZoneOffset类18.1.ZoneId的一个子类18.2.当前时间和伦敦格林尼治子午线时间的差异18.3.偏差实际上对应的是美国东部标准时间18.4.并未考虑任何夏令时的影响18.5.大多数情况下,不推荐使用,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com