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

时间:2021-08-18 10:08:01

20145225《Java程序设计》

第7周学习总结

教材学习内容总结

第十三章 时间与日期

13.1认识时间与日期

  1. 时间的度量:GMT、UT、TAI、UTC、Unix、epoch。

  2. 年历:Julian Calendar、Gergorian Calendar、ISO 8601标准。

  3. 时区。

13.2认识Date与Calendar

  1. Date:使用Date实例的各getTime可以获得epoch毫秒数,**Data实例只用来当做时间轴上的某一瞬间。
  2. 格式化时间日期的DataFormat:方法:GetDateInstance、GetTimeInstance、GetDateTimeInstance、 直接构建SimpleDateFormat。
  3. 处理时间日期的Calendar:取得Calendar实例后,可以取得年月日信息,可以进行设定,可以进行运算来改变。
  4. 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

参考资料