20145302张薇《Java程序设计》第七周学习总结
20145302 《Java程序设计》第七周学习总结
教材学习内容总结
第十三章
- 时间的度量
- Greenwich Mean Time,格林威治时间,简称GMT时间,由观察太阳而得来;
- Universal Time,世界时,UT;
- International Atomic Time,国际原子时,TAI;
- Coordinated Universal Time,世界协调时间,UTC;
- Unix时间,以1970年1月1日00:00:00为起点;
- epoch:java.util.Date epoch毫秒数。
- 年历简介
- Julian Calendar(儒略历)四年一闰
- Gergorian Calendar(格里高利历)
- ISO 8601标准
- 认识时区一年的毫秒数不是简单的3652460601000
- 时间轴上瞬间的Date使用Date实例的各getTime可以获得epoch毫秒数,**Data实例只用来当做时间轴上的某一瞬间
- 格式化时间日期的Dateformat
- 利用DataFormat可以对字符串格式进行处理,分别有GetDateInstance、GetTimeInstance、GetDateTimeInstance
- 直接构建SimpleDateFormat,可以自定义字符串格式 parse方法可以将指定的字符串剖析Date实例
- 处理时间日期的Calendar取得Calendar实例后,可以取得年月日信息,可以进行设定,可以进行运算来改变
- 设定TimeZoneTimeZone的getdefault可以取得默认时区的信息
- 机器时间观点的APIDate实例只代表机器观点的时间信息
- 人类时间观点的API
- Date实例只代表机器观点的时间信息
- 在上面那些类的基础上可以使用ZonedDateTime等来进行补充
- 取得月份要通过getValue()方法,而不是使用oridinal()(从0开始)方法
- 对时间的运算使用Calendar可以进行时间运算,jdk8中也提供了更加方便的时间运算方法以及输出格式,操作相应的temporal类即可
- 年历系统设计JDK8采用一年历系统设计,也就是说,java.time套件中的类在需要实行年历系统时都是采用单一的ISO8601年历系统。需要明确实行java.time.chrono.Chronology接口的类
教材学习中的问题和解决过程
代码调试中的问题和解决过程
问题教材P436TimeZoneDemo.java
中的定位功能有疑问。代码如下:
import static java.lang.System.out;
import java.util.TimeZone;
public class TimeZoneDemo {
public static void main(String[] args) {
TimeZone timeZone = TimeZone.getDefault();
out.println(timeZone.getDisplayName());
out.println("\t时区ID:" + timeZone.getID());
out.println("\t日光节约时数:" + timeZone.getDSTSavings());
out.println("\tUTC 偏移毫秒数:" + timeZone.getRawOffset());
}
}
-
结果截图如下:
-
为什么定位于上海呢?
本周代码托管截图
其他(感悟、思考等,可选)
- 这周的学习令人感到愉悦
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 1500行 | 15篇 | 400小时 | |
第一周 | 10/10 | 2/2 | 10/10 | 基础知识 |
第二周 | 50/60 | 1/3 | 35/35 | 语法知识 |
第三周 | 100/160 | 1/4 | 25/60 | 了解对象 |
第四周 | 150/310 | 1/5 | 30/90 | 面向对象 |
第五周 | 390/700 | 1/6 | 30/120 | 处理异常 |
第六周 | 300/1000 | 2/8 | 30/150 | 输入输出 |
第七周 | 300/1300 | 2/10 | 20/170 | 时间代码 |