20155206 2016-2017-2 《Java程序设计》第7周学习总结
教材学习内容总结
认识时间与日期
1.格林威治时间(GMT):通过观察太阳而得,因为地球公转轨道为椭圆形且速度不一,本身自传减速而造成误差。
2.世界时(UT):通过观测远方星体跨过子午线而得,受地球自转速度影响有误差。
3.国际原子时(TAI):将秒的国际单位定义为铯原子辐射振动9192631770周耗费的时间。
4.世界协调时间(UTC):保持TAI和UT时间误差不要过大采用了闰秒修正。
5.Unix时间:Unix系统时间表示法,定义为UTC时间1970年1月1日为起点经过的秒数,不考虑闰秒修正。
6.epoch:某个特定时间开始,时间轴上的某一瞬间。
7.ISO 8601标准:统一时间日期的数据交换格式,例如:yyyy-mm-ddTHHH:MM:SS.SSS等。
8.UTC偏移:精度每15度偏移1小时,通常表示Z符号。
Date与DateFormat
1.Date:取得系统时间,方法之一就是使用System.currentTimeMillis()
方法,返回long类型整数,代表1970年1月1日0时0分0秒0毫秒至今经过的毫秒数。Date有两个构造函数可以使用,一个可使用epoch
毫秒数构建,另一个为无自变量构造函数,内部亦是使用System.currentTimeMillis()
取得毫秒数,调用getTime()
可取得内部保存的epoch毫秒数值。
2.DateFormat:DateFormat
是个抽象类,其操作类是java.text.SimpleDateFormat
,可以处理字符串时间格式。可以通过DateForm
的各种静态方法进行格式化,使用模式字符串自定义格式,使用parse()
方法将指定的字符串剖析为Date实例。
Calendar:
1.Calendar:
想要取得某个时间日期信息,或者是对时间日期进行操作,可以使用Calendar实例。Calendar
是个抽象类,java.util.GregorianCalendar
是其子类,操作了儒略历与格里高利历的混合历。可以设定时间日期等字段,使用add()方法改变Calendar的时间,使用roll()
方法加减日期中某个字段,使用after()
或before()
方法比较两个Calendar
的时间日期先后。
2.TimeZone:Calendar
时会使用默认时区,可以使用java.util.TimeZone
的getDefault()
来取得默认时区信息。
机器时间
1.LocalDateTime:包括日期与时间。
2.LocalDate:只有日期,设定不存在的日期时会抛出DateTimeException错误。
3.LocalTime:只有时间。
4.ZonedDateTime:当补上时区信息后组合起来的时间实际上不存在时,ZonedDateTime会自动更正。
对时间的运算
1.TemporalAmount:TemporalAmount的操作类是Period和Duration。ofPattern()是java.time.format.DateTimeFormatter的静态方法,对于年、月、星期、日的日期差使用Period类定义,plus()方法可以接受Duration实例来计算,对于时间计量,类Duration来定义。
代码托管
因为昨天电脑突然出现问题,在多方求助无果后,检查发现是硬盘损坏。现在电脑完全无法打开。今天就不得不新换课一台电脑,现在虚拟机和一系列配套软件都没有安装完成。所以本周之前写的代码都已经丢失了。本周的代码上传量为零。QAQ~~~
上周考试错题总结
-
下面代码*有()个线程?
public class ThreadTest {
public static void main(String args[]){
MyThread myThread =new MyThread();
Thread t1=new Thread(myThread);
Thread t2=new Thread(myThread);
t1.start();
t2.start();
}
}
class MyThread extends Thread {
...
}
A .1
B .2
C .3
D .4
错误原因:忘记main主线程。结对及互评
[20155231邵煜楠](http://www.cnblogs.com/javasyn/p/6685884.html)
博客互评
[20155220](http://www.cnblogs.com/20155220wsq/p/6658597.html)
20155332
20155317
20155224
20155337