《Java经典入门指南》课后习题及答案Chapter13
1.旧的日期-时间API中的两个核心类是什么?
answer:这两个类是java.util.Date和java.util.Calendar。
2.为什么旧的日期-时间API被淘汰了?
answer:因为许多功能不适用或者不容易使用。例如:Date类的设计很糟糕,月份从1开始,天从0开始。
3.新的日期-时间API有哪些包?
answer:核心类包含在java.time包中,另外还有4个使用不多的包:java.time.chrono;java.time.format;java.time.temporal;和java.time.zone。
4.核心包中的主要类包括哪些?
answer:核心包java.time包含的主要类有:Instant类;LocalDate类;LocalDateTime类;LocalTime类;ZonedDateTime类;Duration类;Period类;DateTime Formatter类等。java.time包还有两个枚举类型:DayOfWeek和Month.
5.创建LocalDate、LocalDateTime和ZonedDateTime的两种静态方法分别是什么?
answer:分别是now静态方法和of静态方法。
6.Period和Duration有什么不同?
answer:Period基于日期(以年月日的形式给出结果),Duration基于时间(以小时和分钟的形式给出结果)。
7.什么是为操作计时的最简单的方法?
answer:Duration类的between方法。
8.如何获得所有时区标识符的一个Set?
answer:
package com.basic;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
public class TimeZoneDemo1 {
public static void main(String[] args) {
Set<String> allZoneIds = ZoneId.getAvailableZoneIds();
List<String> zoneList = new ArrayList<>(allZoneIds);
Collections.sort(zoneList);
for (String zoneId : zoneList) {
System.out.println(zoneId);
}
// 或者,读者可以使用下面的代码
// 打印出排序后的时区id的列表
ZoneId.getAvailableZoneIds().stream().sorted().
forEach(System.out::println);
}
}
9.新的日期和时间API中的日期-时间格式化器类是什么?
answer:新的日期和时间API中的日期-时间格式化器类是Java.time.format.DateTimeFormatter。