您的位置:首页 > 编程语言 > Java开发

20145333 《Java程序设计》第7周学习总结

2016-04-17 14:12 423 查看

20145333 《Java程序设计》第7周学习总结

教材学习内容总结

时间的度量

1.格林威治标准时间(GMT):常被不严谨地当成是UTC时间,现已不作为标准时间使用。

2.世界时(UT):在1972年引入UTC之前,GMT与UT是相同的

3.国际原子时(TAI):秒的单位定义是基于TAI,也就是铯原子辐射振动次数。

4.世界协调时间(UTC):UTC考虑了地球自转越来越慢而有闰秒修正,确保UTC与UT相差不会超过0.9秒。

5.Unix时间:不考虑闰秒修正,用以表达时间轴上某一瞬间

6.epoch:某个特定时代的开始,用以表达时间轴上某一瞬间

年历简介

1.儒略历:修正了罗马历隔三年设置一闰年的错误,改采四年一闰。

2.格里高利历:将儒略历1582年10月4号星期四的隔天,订为格里高利历1582年10月15日星期五。

3.ISO 8601标准,采用统一的数据格式例如:yyyy-mm-ddTHHH:MM:SS.SSS。

认识时区

每个地区的标准时间各不相同,涉及到地理、法律、经济、社会、政治等问题。

考虑了UTC偏移的时间表示上,通常会标识Z符号。

有些高纬度国家,夏季、冬季日照时间差异很大,实施日光节约时间。

格式化时间日期的DateFormate

DateFormat是个抽象类,其操作类是java.text.SimpleDateFormat,你可以直接构建SimpleDateFormat实例,或是使用DateFormat的getDateInstance()、getTimeInstance()、getDateTimeInstance等静态方法,用较简便方式按不同需求取得SimpleDateFormat实例。

处理时间日期的Calendar

Date现在建议作为时间轴上的瞬间代表,要格式化时间日期则通过DateFormat,如果想要取得某个时间日期信息,或者是对时间日期进行操作,可以使用Calendar实例。

Calendar是个抽象类,java.util.GregorianCalendar是其子类,操作了儒略历与格里高利历的混合历,通过Calendar的getInstance()取得的Calendar实例,默认就是取得GregorianCalendar实例。

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

ZonedDateTime和OffsetDateTime之间有什么关系?

ZonedDateTime和OffsetDateTime间可以通过toXXX()方法互转,Instant通过atZone()与atOffset()转为ZonedDateTime和OffsetDateTime,ZonedDateTime和OffsetDateTime也都可以通过toInstant()取得Instant,ZonedDateTime和OffsetDateTime都有toLocalDate()、toLocalTime()、toLocalDateTime()方法可以取得LocalDate、LocalTime和LocalDateTime。

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

public static long yearsBetween(Calendar begin, Calendar end) {
Calendar calendar = (Calendar) begin.clone();             long years = 0;
while (calendar.before(end)) {
calendar.add(Calendar.YEAR, 1);
years++;
}
return years - 1;
}

public static long daysBetween(Calendar begin, Calendar end) {
Calendar calendar = (Calendar) begin.clone();
long days = 0;
while (calendar.before(end)) {
calendar.add(Calendar.DATE, 1);
days++;
}
return days - 1;
}

如果在Calendar实例上进行add()之类的操作,则会修改Calendar实例本身,为了避免调用yearsBetween()、

daysBetween()之后传入的Calendar自变量被修改,两个方法中都对第一个自变量进行了clone()复制对象的动

作。

本周代码托管截图

其他(感悟、思考等,可选)

这周的学习任务较少,只有一章的内容,而且内容也比较简单,因此我有更多的时间来仔细学习研究这章的内容,不懂的知识点有了充足的时间来搞懂,我认为这样的学习比较有效率,不用为了按时交作业而放弃细究一些不会的问题。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标3500行15篇400小时
第一周100/1002/220/20
第二周150/2501/318/38
第三周100/3501/422/60
第四周300/6501/530/90
第五周100/7501/620/110
第六周350/11001/725/135
第七周250/13501/825/160
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: