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

教材学习内容总结

第十三章 时间与日期

13.1.1 时间的度量

·即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间。

·秒的单位定义时基于TAI。也就是铯原子辐射的振动次数。

·UTC考虑了地球自转越来越慢而有闰秒修正,确保UTC与UT相差不会超过0.9秒。最近一次的闰秒修正为2012年6月30日。

·Unix时间是1970年1月1日00:00:00为起点二经过的描述,不考虑闰秒,很多Unix系统、平台、软件等,都选择这时间作为时间表示发的起算点。

13.1.2 年历简介

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

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

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

13.1.3 认识时区

UTL偏移

日光节约时间:也称为夏季时间,基本上就是在实施的第一天,让白天的时间增加一小时,而最后一天结束后再调整一小时回来。

13.2.1 时间轴上瞬间的Date

·如果想取得系统时间,方法之一就是使用System.currentTimeMillis()方法,返回long类型整数,代表1970年1月1日0时0分0秒0毫秒至今经过的毫秒数。

P429范例如下:

package CH7;

/**
* Created by Administrator on 2016/4/16.
*/
import java.util.*;
import static java.lang.System.*;
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());
}
}

有关于字符串时间格式的处理,不再是Date的职责。

13.2.2 格式化时间日期的DateFormat

有关字符串时间格式的处理,职责落到了java.text.DateFormat身上。可以通过DAteForm的各种静态方法,进行格式化;还可以使用模式字符串自定义格式。

parse()方法,可以将指定的字符串剖析为Date实例。

package CH7;

/**
* Created by Administrator on 2016/4/16.
*/
import java.util.*;
import java.text.*;
public class HowOld {
public static void main(String[] args) throws Exception {
System.out.print("输入出生年月日(yyy-mm-dd):");
DateFormat dateFormat = new SimpleDateFormat("yyy-mm-dd");
Date birthDate = dateFormat.parse(new Scanner(System.in).nextLine());
Date currentDate = new Date();
long life = currentDate.getTime()-birthDate.getTime();
System.out.println("你今年的岁数为:"+(life/(365*24*60*60*1000L)));
}
}

13.2.3 处理时间日期的Calendar

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

·建立Calendar实例,可以使用get()方法并指定Calendar上的字段。 使用add()方法改编时间,使用roll()方法只针对日期中的某个字段加减。

13.2.4 设定TimeZone

·使用Calendar时,并没有使用时区信息,这回使用该默认时区,可以使用java.util.TImeZone的getDefault()来取得默认时区信息

·可用的ID可以使用TimeZone.getAvailableIDs()来取得,它会返回String[]

13.3.1 机器时间观点的API

·由于某一时区已经不实施日光节约一段时间了,许多开发者并不知道过去有过日光节约时间,在取得Date实例后,被名称Date误导他们代表日期,所以不应该使用Data实例来得知人类观点的时间信息。

·真正可靠的信息只有内含epoch毫秒数。同时也可以使用Instant的静态方法now()取得代表Java epoch毫秒数的Instant实例。

13.3.2 人类时间观点的API

·LocalDateTime只包括时间与日期,LocalDate只有日期,LocalTime只有时间,他们都是对时间的描述,没有时区信息。

·若需要时区信息,可基于上述三个时间描述的ZoneDateTime和OffsetDateTIme.

13.3.3 对时间的运算

1.TemporalAmount

时间差以Duration定义,日期差以Period定义。

2.TemporalUnit

between()方法用于计算时间差

3.Temporal

4.TemporalAccessor定义了只读的时间对象

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

从P432代码运行结果上看:

正如书上解释的那样,一年的毫秒数并不是如这个范例中,可以简单的使用3652460601000计算出来,实际上算出来的岁数也是错的,撰写的时间点是2016/4/16.因为还没过5/26,所以应当是40岁。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 100/100 1/2 10/15
第二周 100/200 2/4 15/30
第三周 300/500 1/5 30/60
第四周 300/800 1/6 30/90
第五周 347/1147 1/7 30/120
第六周 352/1499 2/9 30/150
第七周 258/1757 2/11 30/180

参考资料

20145206邹京儒《Java程序设计》第7周学习总结的更多相关文章

  1. 20145206邹京儒《Java程序设计》课程总结

    20145206邹京儒<Java程序设计>课程总结 (按顺序)每周读书笔记链接汇总 第一周:http://www.cnblogs.com/ZouJR/p/5213572.html http ...

  2. 20145206邹京儒 web安全基础实践

    20145206邹京儒 web安全基础实践 一.实践过程记录 关于WebGoat 1.我们在命令行里执行:java -jar webgoat-container-7.0.1-war-exec.jar运 ...

  3. 20145206邹京儒 Exp8 Web基础

    20145206邹京儒 Exp8 Web基础 一.实践过程记录 Apache (一)环境配置 1.查看端口占用:在这里apach2占用端口80 2.测试apache是否正常工作:在kali的火狐浏览器 ...

  4. 20145206邹京儒 EXP7网络欺诈技术防范

    20145206邹京儒 EXP7网络欺诈技术防范 一.实践过程记录 URL攻击实验前准备 1.在终端中输入命令:netstat -tupln |grep 80,查看80端口是否被占用,如下图所示 2. ...

  5. 20145206邹京儒Exp6 信息搜集与漏洞扫描

    20145206邹京儒Exp6 信息搜集与漏洞扫描 一.实践过程记录 openvas漏洞扫描 1.openvas-check-setup来查看下他的安装状态: 如下图所示:在步骤7中出现错误,显示需要 ...

  6. 20145206邹京儒MSF基础应用

    20145206邹京儒MSF基础应用 一.MS08_067漏洞渗透攻击实践 实验前准备 1.两台虚拟机,其中一台为kali,一台为windows xp sp3(英文版). 2.在VMware中设置两台 ...

  7. 20145206邹京儒《网络对抗技术》 PC平台逆向破解

    20145206邹京儒<网络对抗技术> PC平台逆向破解 注入shellcode并执行 一.准备一段shellcode 二.设置环境 具体在终端中输入如下: apt-cache searc ...

  8. 20145206邹京儒《网络对抗》逆向及Bof基础实践

    20145206邹京儒<网络对抗>逆向及Bof基础实践 1 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:ma ...

  9. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  10. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

随机推荐

  1. java中重载与重写的区别

    (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. 然后我们再来谈谈 重写(Over ...

  2. Linux之ls命令

    s 命令可以说是linux下最常用的命令之一. -a 列出目录下的所有文件,包括以 . 开头的隐含文件.-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出.-c 输出文件 ...

  3. (备忘)android清单文件中<meta-data>标签,以及<intent-filter>下的<data>标签及其他标签

    1.metadata可以写在application下也可以写在activity下,作为全局或activity内共享的数据 以键值对形式保存 <meta-data android:name=&qu ...

  4. Bootstrap 3学习笔记 -栅格

    这是Bootstrap中非常基础一张表,但其实有这么容易掌握和理解吗? (1).对于col-md的div, 默认是垂直排列, 当视口(屏幕或浏览器的宽度)>992px,col-md-1的div块 ...

  5. C++实现VPN工具之常用API函数

    RAS是Remote Access Service的缩写,意为:远程访问服务,主要用来配置企业的远程用户对企业内部网络访问,包括拨号访问和vpn方式.微软的所有Windows平台中都有RAS客户机,它 ...

  6. 多字段 java对象排序

    public class ReflexUtil { static Logger logger = LoggerFactory.getLogger(ReflexUtil.class); //getMet ...

  7. ACM/ICPC 之 DFS范例(ZOJ2412-ZOJ1008)

    通过几道例题简单阐述一下DFS的相关题型 ZOJ2412-Farm Irrigation 直观的DFS题型,稍加变化,记录好四个方向上的通路就能够做出来 题目和接水管类似,问最少要灌溉几次,即求解最少 ...

  8. Slave SQL: Error 'Incorrect string value ... Error_code: 1366

    背景: 主从环境一样,字符集是utf8. Slave复制报错,平时复制都正常也没有出现过问题,今天突然报错: :: :: :: :: Error_code: :: perror 1366 MySQL ...

  9. static 修饰内部类

    static一般用来修饰成员变量或函数也修饰代码块,一般不能修饰类,但是可以修饰内部类,被修饰的内部类可以直接作为一个普通类来用,不需要创建一个外部类的实例,而普通内部类的引用需要创建一个外部类的实例 ...

  10. java入门第一季2

    1. 变量:在java中,我们通过三个元素描述变量:变量类型,变量名以及变量值 注意:java中的标点符号都是英文的 2. 变量名= 首字母+其余部分 字母,+  字母 下划线,  数字 $      ...