20145304 Java第七周学习报告
20145304《Java程序设计》第七周学习总结
教材学习内容总结
1.时间的度量:
- 格林威治标准时间(GMT)通过观察太阳而得,其正午是太阳抵达天空最高点之时,因地球的公转与自传,会造成越来越大的时间误差,已不作为标准时间使用。
- 时间时(UT)是借由观测远方星体跨过子午线而得,比GMT准确一些,在1972年引入UTC之前,GMT与UT是相同的,仍有误差。
- 1967年定义的国际原子时(TAL),将秒的国际单位定义为铯原子辐射振动9192631770周耗费的时间,时间从UT的1958年开始同步。
- 世界协调时间(UTC)为保持TAI与UT时间不要差距过大而提出,1972年UTC采用了闰秒修正,确保UTC与UT相差不会超过0.9秒,加入闰秒的时间通常会在6月底或12月底。
- Unix系统的时间表示法,定义为UTC时间1970年1月1日00:00:00为起点而经过的秒数,不考虑闰秒修正,用以表达时间轴上某一瞬间。
java.util.Date封装的时间信息,就是January 1,1970,00:00:00 GMT(实际上是UTC)经过的毫秒数(epoch毫秒数)。
2.年历简介:
- 儒略历,现今公历的前身,用来取代罗马历,修正了罗马历隔三年设置一闰年的错误,改采四年一润。
- 格里高利历改革了儒略历,由教宗Pope Gregory ⅩⅢ于1582年颁行,将儒略历1582年10月4日星期四的隔天,定为格里高利历1582年10月15日星期五。
ISO 8601严格的说并非年历系统,而是时间日期表示方法的标准,用以统一时间日期的数据交换格式。
3.时区:
- 美国有四个时区,中国、印度只采用单一时区。
有些高纬度国家,实施日光节约时间,也称为夏季时间。
4.认识Date与Calendar:
- 想要取得系统时间,使用System.currentTimeMillis()方法,返回的是long类型的整数。
Date有两个构造函数可以用,一个可使用epoch毫秒数构建,另一个为无自变量构造函数,内部亦是使用System.currentMillis()取得epoch毫秒数,调用getTime()可取得内部保存的epoch毫秒数值。
代码结果截图:

- java.text.DateFormat负责字符串时间格式的处理,其操作类为java.text.SimpleDateFormat。
- getDateInstance()、getTimeInstance()、getDateTimeInstance()等静态方法主要是取得不同详细程度的时间日期。
代码结果截图:

- SinpleDateFormat有parse()方法,可以按构建SimpleDateFormat时指定的格式,将指定的字符串剖析为Date实例。
代码结果截图:

- Calender是个抽象类,java.util.GregorianCalendar是其子类,操作了儒略历与格里高利历的混合历,通过Calendar的getInstance()取得的Calendar实例,默认就是取得GregorianCalendar实例。
- 取得Calender实例后,可以使用getTime()取得Date实例,如果想取得年月日等日期时间字段,可以使用get()方法并指定Calender上的字段枚举常数。
- 日历时间可以使用GregorianCalendar的setGregorianChange()方法来修改,设为Date(Long.MAX_VALUE)就是纯粹的儒略历,设为Date(Long.MIN_VALUE)就是纯粹的格里高利历。
- 想要比较两个Calender时间日的先后,可以使用after()或before()方法。
代码结果截图:

- 使用java.util.TimeZone的getDefault()来取得默认时区信息。
代码结果截图:
5.JDK8新时间日期API:
- Date指的是机器的时间概念。
- 新时间日期处理API的主要套件命名为java.time。对于机器相关的时间概念,设计了Instant类,用以代表自定义的Java epoch之后的某个时间点经历的毫秒数,精确度基本上是毫秒,但可添加柰秒精度的修正数值。
- 人类时间观点API,LocalDateTime(包括日期与时间)、LocalDate(只有日期)、LocalTime(只有时间),如果需要时区,可以基于LocalDateTime、LocalDate、LocalTime等来补充。
代码结果截图:

- 只想表示年用Year,想表示年月用YearMonth,只想表示月用Month,想表示月日用MonthDay,从0开始,想要取得代表月份的数要用过getValue()方法。
代码结果截图:

- 类Duration可用于计量天、时、分、秒的时间差,精度调整可以达纳秒等级,而秒的最大值可以是long类型可保存值。对于年、月、星期、日的是日期差,则使用Period类定义。
代码结果截图:
教材学习中的问题和解决过程
- 若想要得到1970年之前到现在的时间差,要如何计算呢?计算机是从1970年1月1日00:00:00为零点开始计时的,不知用和方法可求得此时间差。
代码调试中的问题和解决过程
此次代码调试中没有出现较大的问题。
其他(感悟、思考等,可选)
通过这一章的学习我了解到机器的时间观点与人的时间观点不同,需要区分;也了解到了关于时间、日历的历史,用计算机算出了很多关于时间的东西。很系统的了解了系统的时间知识,为以后的运用奠定了基础。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第七周 | 200/1110 | 3/10 | 20/170 |
参考资料
20145304 Java第七周学习报告的更多相关文章
- 20145304 Java第八周学习报告
20145304<Java程序设计>第八周学习总结 教材学习内容总结 NIO NIO使用频道来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记 ...
- 20145304 Java第六周学习报告
20145304<Java程序设计>第六周学习总结 教材学习内容总结 1.InputStream与OutputStream: 在Java中,输入串流的代表对象为java.io.InputS ...
- 20145304 Java第三周学习报告
20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...
- 20165210 Java第七周学习总结
20165210 Java第七周学习总结 教材内容学习 第十一章学习总结 连接数据库: 1. 下载JDBC-MySQL数据库驱动 2. 加载JDBC-MySQL数据库驱动 3. 连接数据库 4. 注意 ...
- JAVA 第七周学习总结
20175308 2018-2019-2 <Java程序设计>第七周学习总结 教材学习内容总结 本周学习第八章:常用实用类 String类: String类位于java.lang包中,被定 ...
- 20165326 java第七周学习笔记
第七周学习笔记 MySQL(数据管理系统)学习 知识点总结: 不能通过关闭MySQL数据库服务器所占用的命令行窗口来关闭MySQL数据库. 如果MySQL服务器和MySQL管理工具驻留在同一台计算机上 ...
- 201521123093 java 第七周学习总结
1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 //contains()方法 public boolean contains ...
- Java第七周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: XMind 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 ...
- 20155303 2016-2017-2 《Java程序设计》第七周学习总结
20155303 2016-2017-2 <Java程序设计>第七周学习总结 教材学习中的问题和解决过程 『问题一』:SimpleDateFormat中每个字符的含义都是什么? 『问题一解 ...
随机推荐
- app性能测试点、安全测试点总结
- 转:不再以讹传讹,GET和POST的真正区别
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历 前几天有人问我这个问题.我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用. 这个答案好像并不是他想要的.于是他继 ...
- samba 最简单配置 共享
[root@GitLab ~]# cat /etc/samba/smb.conf [global] workgroup = WORKGROUP server string = David Samba ...
- C#的yield关键字
using System; using System.Collections.Generic; using System.Reflection; using System.Text.RegularEx ...
- 微信支付:“当前页面的URL未注册”
最近在尝试着写微信支付方面的内容,今天下午的时候遇到了一个问题,也就是当前页面没有进行注册的问题. 在写好后台代码之后我在微信后台配置了测试授权目录和支付白名单,如下图所示,但是无论我如何进行测试总是 ...
- 【JAVA解析XML文件实现CRUD操作】
一.简介. 1.xml解析技术有两种:dom和sax 2.dom:Document Object Model,即文档对象模型,是W3C组织推荐的解析XML的一种方式. sax:Simple API f ...
- Cash Cow【dfs较难题应用】【sdut2721】
Cash Cow Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 题目链接:http://acm.sdut.edu.cn/sdut ...
- Solr入门之(4)配置文件solr.xml
<?xml version="1.0" encoding="UTF-8" ?> <!-- This is an example of a si ...
- 2-06使用SQL语句创建数据库3
向现有数据库中添加文件组和数据文件几种方式以及步骤: 第一种:在视图下添加文件组和数据文件. 添加文件组的步骤: 右击你想要添加文件组的数据库点属性,然后点文件组就可以添加. 添加数据文件的步骤: 下 ...
- VS2015上又一必备免费插件:Refactoring Essentials
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:Refactoring Essentials是一款用于代码分析和重构的开源免费VS20 ...