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

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


教材学习内容总结

周末快乐的时间总是短暂的,还没好好感受就到了要写博客的周日。有人喟叹时间都去哪儿了,那本周我们就来认识一下Java里的时间吧!(硬性植入)

  • 首先来认识一下一些重要的时间基准吧!

    格林威治标准时间(GMT),关键词——观察太阳、不准。

    世界时(UT),关键词——观测远方星体、比楼上准一点。

    国际原子时(TAL),关键词——铯原子辐射振动、过分准。

    世界协调时间(UTC),关键词——协调UT与TAL时间差距不要太大

    Unix与epoch,前者表示从1970年1月1日0分为起点而经过的秒数,后者表示经过的毫秒数。
  • 表达时间的历法

    公历,大家很熟悉了。

    儒略历,修正罗马历每三年设置一闰年的错误,改为四年。

    格里高利历,给我的印象就是抹掉了1752年9月中的11天

    ISO 8601标准,例如yyyy-mm-ddTHH:MM:SS.SSS这样格式的时间日期表示方法的标准
  • 可以使用System.currentTimeMillis()取得系统时间,返回的是long类型整数,代表从1970年1月1日0分至今经过的毫秒数。
  • 也可以使用Date实例来取得系统时间描述,其有两个构造函数可以使用,一个可使用epoch毫秒数构建,另一个为无自变量构造函数。
  • 利用java.text.DateFormat来处理有关字符时间格式的处理。法一:构建SimpleDateFormat实例,好处是可以使用模式字符串自定义格式。法二:使用DateFormat getDateInstance (),getTimeInstance(),getDateTimeInstance()等静态方法。
  • SimpleDateFormat还有一个parse()方法,可以按构建SimpleDateFormat时指定的格式,将指定的字符串剖析为Date实例。
  • 如果想取得某个时间日期信息,或者对时间日期进行操作,可以使用Calender实例。取得Calender实例后,可以使用getTime()取得Date实例,如果想要取得年月日等日期时间段,可以使用get()方法指定Calender上的字段枚举常数。
  • 使用Cakendar时,会使用默认时区,可以使用java.util.TimeZonegetDefault() 来取得默认时区信息。
  • 如果你的时间日期需要带有时区,可以基于LocalDateTime,LocalDate,LocalTime等来补齐缺少的信息。
  • 使用oridinal方法取得 enum在定义时的顺序(从0开始),想要取得代表月份的数要通过getValue 的发法。

    写到这,我烦了,不想再写了。是的,我烦了,因为我发现我一直在照抄课本上的内容。在自己的博客上不生产水,却成了大自然的搬运工,这让我心烦气躁的。我看了看我之前的知识点总结,就像*说的那样,又长又臭。也难怪老师一直不建议直接照抄课本。今天在这里,我都招了,以上知识点总结全部照抄学习笔记,最后会注明引用的,想学习知识的读者,不好意思让你失望了,你看课本学习笔记吧,那里写的比我之前搬运的更全面。之所以很不耐烦,是因为我发现每次写博客在教材学习内容总结这个模块上搬运课本内容花费我大量时间和精力,我现在就想直接跳到代码调试中的问题和解决过程。我的博客我做主。

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

其实也就是小问题啦!代码如下
package cc.openhome;

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());
}
}

默认时区信息居然是

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

于是我使用ID字符串来取得指定时区的TimeZone实例,代码如下:

package workspace2;

import static java.lang.System.out;
import java.util.TimeZone; public class TimeZoneDemo {
public static void main(String[] args) {
TimeZone beijingTZ = TimeZone.getTimeZone("Asia/Beijing");
out.println(TimeZone.getAvailableIDs());
out.println(beijingTZ.getDisplayName());
out.println("\t时区ID:" + beijingTZ.getID());
out.println("\t日光节约时数:" + beijingTZ.getDSTSavings());
out.println("\tUTC 偏移毫秒数:" + beijingTZ.getRawOffset());
}
}

可是结果不尽人意

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

实践展示(多图)

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

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

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

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

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

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

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

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


代码托管截图

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

(对!没错,我这次可以有底气大声告诉你,我就是用上课教的方法git.add、git.commit、git.push托管代码的)


体会

这次最大收获就是终于学会了用老师上课教的代码托管方法了!之前都是通过新建文件夹的形式托管代码的,每次看到娄老师幽幽地评论说代码托管有问题,我就忐忑不安,放张截图,自己感受

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

说起来还真是不好意思,因为之前没掌握方法,就不敢回复老师,一直拖到现在,希望老师能原谅这迟到的师生互动好了。


学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 1/1 10/10
第二周 200/220 1/2 15/25
第三周 200/420 1/3 15/40
第四周 200/620 1/4 15/55
第五周 100/720 1/5 10/65
第六周 200/920 2/6 15/80
第七周 180/1100 1/8 15/95

参考资料

*Java学习笔记(第8版)

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

上一篇:Container Stack


下一篇:Java并发基础03. 传统线程互斥技术—synchronized