20145302张薇《Java程序设计》第七周学习总结

20145302 《Java程序设计》第七周学习总结

教材学习内容总结

第十三章

  • 时间的度量
  1. Greenwich Mean Time,格林威治时间,简称GMT时间,由观察太阳而得来;
  2. Universal Time,世界时,UT;
  3. International Atomic Time,国际原子时,TAI;
  4. Coordinated Universal Time,世界协调时间,UTC;
  5. Unix时间,以1970年1月1日00:00:00为起点;
  6. epoch:java.util.Date epoch毫秒数。
  • 年历简介
  1. Julian Calendar(儒略历)四年一闰
  2. Gergorian Calendar(格里高利历)
  3. ISO 8601标准
  • 认识时区一年的毫秒数不是简单的3652460601000
  • 时间轴上瞬间的Date使用Date实例的各getTime可以获得epoch毫秒数,**Data实例只用来当做时间轴上的某一瞬间
  • 格式化时间日期的Dateformat
  1. 利用DataFormat可以对字符串格式进行处理,分别有GetDateInstance、GetTimeInstance、GetDateTimeInstance
  2. 直接构建SimpleDateFormat,可以自定义字符串格式 parse方法可以将指定的字符串剖析Date实例
  • 处理时间日期的Calendar取得Calendar实例后,可以取得年月日信息,可以进行设定,可以进行运算来改变
  • 设定TimeZoneTimeZone的getdefault可以取得默认时区的信息
  • 机器时间观点的APIDate实例只代表机器观点的时间信息
  • 人类时间观点的API
  1. Date实例只代表机器观点的时间信息
  2. 在上面那些类的基础上可以使用ZonedDateTime等来进行补充
  3. 取得月份要通过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 时间代码

参考资料

posted @ 2016-04-17 19:30  20145302张薇  阅读(138)  评论(3编辑  收藏  举报