20145225《Java程序设计》
第7周学习总结
教材学习内容总结
第十三章 时间与日期
13.1认识时间与日期
时间的度量:GMT、UT、TAI、UTC、Unix、epoch。
年历:Julian Calendar、Gergorian Calendar、ISO 8601标准。
时区。
13.2认识Date与Calendar
- Date:使用Date实例的各getTime可以获得epoch毫秒数,**Data实例只用来当做时间轴上的某一瞬间。
- 格式化时间日期的DataFormat:方法:GetDateInstance、GetTimeInstance、GetDateTimeInstance、 直接构建SimpleDateFormat。
- 处理时间日期的Calendar:取得Calendar实例后,可以取得年月日信息,可以进行设定,可以进行运算来改变。
- TimeZone:TimeZone的getdefault可以取得默认时区的信息。
import java.util.Date;
import static java.lang.System.currentTimeMillis;
import static java.lang.System.out;
public class DateDemo {
public static void main(String[] args) {
Date date1 = new Date(currentTimeMillis());
Date date2 = new Date();
out.println(date1.getTime());
out.println(date2.getTime());
}
}
、
import java.util.Date;
import static java.lang.System.out;
import static java.text.DateFormat.*;
public class DateFormatDemo {
public static void main(String[] args) {
Date date = new Date();
dateInstanceDemo(date);
timeInstanceDemo(date);
dateTimeInstanceDemo(date);
}
static void dateInstanceDemo(Date date) {
out.println("getDateInstance() demo");
out.printf("\tLONG: %s%n", getDateInstance(LONG).format(date));
out.printf("\tSHORT: %s%n", getDateInstance(SHORT).format(date));
}
static void timeInstanceDemo(Date date) {
out.println("getTimeInstance() demo");
out.printf("\tLONG: %s%n", getTimeInstance(LONG).format(date));
out.printf("\tMEDIUM: %s%n", getTimeInstance(MEDIUM).format(date));
out.printf("\tSHORT: %s%n", getTimeInstance(SHORT).format(date));
}
static void dateTimeInstanceDemo(Date date) {
out.println("getDateInstance() demo");
out.printf("\tLONG: %s%n", getDateTimeInstance(LONG, LONG).format(date));
out.printf("\tMEDIUM: %s%n", getDateTimeInstance(MEDIUM, MEDIUM).format(date));
out.printf("\tSHORT: %s%n", getDateTimeInstance(SHORT, SHORT).format(date));
}
}
、
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class HowOld {
public static void main(String[] args) throws Exception {
System.out.print("输入出生年月日(yyyy-mm-dd):");
DateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");
Date begin = new Date();
Date birthday = dateFormat.parse(new Scanner(System.in).nextLine());
Date currentDate = new Date();
long life = currentDate.getTime() - birthday.getTime();
System.out.println("你今年的岁数为:" + (life / (365 * 24 * 60 * 60 * 1000L)));
Date end = new Date();
long duration = end.getTime() - begin.getTime();
System.out.println("运行时间:" + (duration));
}
}
13.3新时间日期API
1.机器时间观点:Date实例只代表机器观点的时间信息。
2.人类时间观点:LockalDateTime、LocalDate、LocalTime。
3.对时间的运算。
4.年历系统设计。
import static java.lang.System.out;
import java.time.*;
public class ZonedDateTimeDemo {
public static void main(String[] args) {
LocalTime localTime = LocalTime.of(0, 0, 0);
LocalDate localDate = LocalDate.of(1975, 4, 1);
ZonedDateTime zonedDateTime = ZonedDateTime.of(
localDate, localTime, ZoneId.of("Asia/Taipei"));
out.println(zonedDateTime);
out.println(zonedDateTime.toEpochSecond());
out.println(zonedDateTime.toInstant().toEpochMilli());
}
}
代码调试中的问题和解决过程
本周代码见代码托管https://git.oschina.net/nizaikanwoba/java-besti-is-2015-2016-2-20145225
其他(感悟、思考等,)
好好学。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 150/150 | 2/2 | 15/15 |
第二周 | 150/300 | 1/3 | 15/30 |
第三周 | 200/500 | 1/4 | 15/45 |
第四周 | 200/700 | 1/5 | 15/60 |
第五周 | 200/900 | 1/6 | 15/75 |
第六周 | 200/1100 | 1/7 | 15/80 |
第七周 | 200/1300 | 2/9 | 15/75 |
参考资料
- Java学习笔记(第8版)
- 《Java学习笔记(第8版)》学习指导
- 毕向东java视频及教学pdf