20145325张梓靖 《Java程序设计》第7周学习总结

java

教材学习内容总结

  • 时间的度量 格林威治时间,简称GMT时间,由观察太阳而得来;世界时,UT;国际原子时,TAI;世界协调时间,UTC;Unix时间,以1970年1月1日00:00:00为起点而经过的秒数,不考虑闰秒修正;epoch,以1970年1月1日00:00:00为起点而经过的毫秒数。

  • 年历简介 儒略历,四年一闰;格里高利历改革了儒略历;ISO 8601标准在数据定义上大部分与格里高利历相同。

  • 认识时区 日光节约时间。

  • Date 使用Date实例的各getTime可以获得epoch毫秒数,**Data实例只用来当做时间轴上的某一瞬间;利用DataFormat可以对字符串格式进行处理,分别有GetDateInstance、GetTimeInstance、GetDateTimeInstance

  • DateFormat java.text.DateFormat复责字符串时间格式处理,DataFormat是个抽象类,其操作类为java.text.SimpleDataFormat,getDataInstance()、getTimeInstance()、getDataTimeInstance()等静态用法;可以直接构建SimpleDataFormat实例,或是使用DataFormat的;直接构建SimpleDateFormat,可以自定义字符串格式 parse方法可以将指定的字符串剖析Date实例

  • Calendar Calendar实例取得某个时间日期信息,或者对时间日期进行操作;Calendar是个抽象类,java.util.GregorianCalendar是其子类,通过Calendar的getInstance()取得的Calendar实例,默认就是取得GregorianCalendar实例;比较两个Calendar的时间日期先后,使用after()或before()方法;取得Calendar实例后,可以取得年月日信息,可以进行设定,可以进行运算来改变。

  • TimeZone TimeZone的getdefault可以取得默认时区的信息;Calender在调用getInstance()时可以指定Timezone,如果已经取得Calender实例,可以通过setTimeZone()的方法设定时区。

  • 机器时间观点的API Date实例只代表机器观点的时间信息;使用Instant的静态方法now()取得Instant实例,ofEpochMilli()可以指定Java epoch毫秒数,ofEpochSecod()指定秒数;取得Instant实例后,可以使用plusSecond()、plusMillis()、plusNanos()、minusSeconds()、minusMillis()、MinusNanos()做时间轴上的运算,返回新的Instant实例,代表运算后的时间。

  • 人类时间观点的API Date实例只代表机器观点的时间信息;在上面那些类的基础上可以使用ZonedDateTime等来进行补充;Month是enum类型,取得代表月份的数字,取得月份要通过getValue()方法,而不是使用oridinal()方法。

  • TemporalAmount 时间计量,新时间和日期用API用类Duration来定义,对于年、月、日、星期的日期差,可使用Period类定义,静态方法ofDays()、ofMonths()、ofWeeks(),返回Period实例。

  • TemporalUnit plus()方法的另一重载版本,接受java.time.temporal.TemporalUnit实例,java.time.temporal.ChronoUnit是其实做类,使用enum实做。

  • Temporal plus()定义在Temporal接口上;Instant、LocalDate、LocalDateTime、LocatTime、OffsetTime、ZonedDateTime等类,都操作了 Temporal 接口。

  • TemporalAccessor Temporal是 TemporalAccessor的子接口。

  • 年历系统设计 DK8采用一年历系统设计,也就是说,java.time套件中的类在需要实行年历系统时都是采用单一的ISO8601年历系统。需要明确实行java.time.chrono.Chronology接口的类。

教材学习中的问题和解决过程

  • 这章教材内容基本都能够理解

代码调试中的问题和解决过程

  • 问题 P441 TemporalAmout 下方的代码

  • 解决过程 按要求输入代码,并且表明了 ofPattern 的类名

结果显示有错误,但并不理解错误原因是什么

  • 注释掉 ofPattern 那一句试试

可以成功通过,那假如用 SimpleDateFormat 的方法来代替代码中的 ofPattern

不可以的,结果显示不能将 Object 转成 Date

  • 那就试试用 Calendar 来重新表达

终于是有可以成功的了。

代码托管

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标3500行28篇300小时
第一周150/1501/120/20
第二周100/2501/222/42
第三周150/4002/421/63
第四周1000/14001/527/90
第五周300/17001/622/102
第六周250/19502/822/124
第七周150/21002/1020/144

参考资料

  • Java学习笔记(第8版)
  • 《Java学习笔记(第8版)》学习指导
  • ...

以上是 20145325张梓靖 《Java程序设计》第7周学习总结 的全部内容, 来源链接: utcz.com/z/393912.html

回到顶部