20145308刘昊阳 《Java程序设计》第7周学习总结
20145308刘昊阳 《Java程序设计》第7周学习总结
教材学习内容总结
第13章 时间与日期
13.1 认识时间与日期
13.1.1 时间的度量
- 格林威治时间(GMT)
- 世界时(UT)
- 国际原子时(TAI)
- 世界协调时间(UTC)
Unix时间:Unix系统的时间表示法epoch:来自于Unix的系统、平台、软件等选用这个时间作为时间表示法的起算点13.1.2 年历简介
- 儒略历
- 格里高利历
ISO 8601标准
13.1.3 认识时区
日光节约时间
13.2 认识
Data与Calender13.2.1 时间轴上瞬间的Data
- 使用
System.currentTimeMillis()方法,取得系统时间,返回 long 类型整数 - 使用
Date实例取得系统时间描述,Date有两个构造函数,一个可使用epoch毫秒数构建,另一个为无自变量构造函数(内部亦是使用System.currentTimeMiilis()取得eqoch毫秒数),调用getTime()可取得内部保存的epoch毫秒数值 setTime()(用来设置epoch毫秒数)字符串时间格式的处理
13.2.2 格式化时间日期的
DataFormatjava.text.DateFormat复责字符串时间格式处理,DataFormat是个抽象类,其操作类为java.text.SimpleDataFormat,可以直接构建SimpleDataFormat实例,或是使用DataFormat的getDataInstance()、getTimeInstance()、getDataTimeInstance()等静态用法getDateInstance()、getTimeInstance()、getDataTimeInstance()等静态方法主要是取得不同详细程度的日期时间,取得DataFormat实例时,也可以指定Locale实例,将日期时间格式化为指定的语系方式- 直接构建
SimpleDateFormat的好处是可使用模式字符串自定义格式 SimpleDateFormat有parse()方法,按照SimpleDateFormat时指定的格式,将指定的字符串剖析为Date实例13.2.3 处理时间日期的
CalendarCalendar实例取得某个时间日期信息,或者对时间日期进行操作Calendar是个抽象类,java.util.GregorianCalendar是其子类,通过Calendar的getInstance()取得的Calendar实例,默认就是取得GregorianCalendar实例- 取得
Calendar实例后,可以使用getTime()取得Date实例,使用get()方法并指定Calendar上的字段枚举常数 - 设定时间日期,不要对
Date设定,应该使用Calendar,月份的部分使用枚举常数定义 - 取得
Calendar实例后,使用add()方法,改变Calendar的值,只针对日期中的某个字段加减,使用roll()方法 - 日历时间可以使用
GregorianCalendar的setGregorianCalendar()方法来修改,设为Date(Long.MAX_VALUE)为纯粹的儒略历,Date(Long.MIN_VALUE)是纯粹的格里高利历 比较两个
Calendar的时间日期先后,使用after()或before()方法13.2.4 设定
TimeZonejava.util.TimeZone的getDefault()来取得默认时区信息- 取得指定时区的
TimeZone实例,可以使用ID字符串 - 用
TimeZone.getAvaliableIDs()取得可用的ID,返回String[] Calender在调用getInstance()时可以指定Timezone,如果已经取得Calender实例,可以通过setTimeZone()的方法设定时区13.3 JDK8新时间日期API
13.3.1 机器时间观点的API
Date是机器的时间观念- 日期处理API主要套件命名
java.time,机器相关的时间概念Instant类 - 使用
Instant的静态方法now()取得Instant实例,ofEpochMilli()可以指定Java epoch毫秒数,ofEpochSecod()指定秒数 取得
Instant实例后,可以使用plusSecond()``plusMillis()``plusNanos()``minusSeconds()``minusMillis()``MinusNanos()做时间轴上的运算,返回新的Instant实例,代表运算后的时间13.3.2 人类时间观点的API
- 1.
LocalDateTime、LocalDate和LocalTime - 对于片段的时间日期时间的描述,不具时区的时间与日期定义
- 2.
ZonedDateTime和OffsetDateTime - 基于
LocalDateTime、LocalDate和LocalTime来补齐缺少的时区信息 - Instant通过
atZone()``atOffset()转化成ZonedDateTime和OffsetDateTime,ZonedDateTime和OffsetDateTime可通过toInstant()取得Instant,ZonedDateTime和OffsetDateTime都有toLocalDate()``toLocalTime()``toLocalDateTime()取得localDate、localTime、localDateTime - 3.
Year``YearMonth``Month``Mothday Month是enum类型,取得代表月份的数字,不要使用oridinal()方法(enum在定义时的顺序,从0开始),使用getValue()方法13.3.3 对时间的运算
- 1.
TemporaAmount - 操作类
Period``Duration - 时间计量,新时间和日期用API用类
Duration来定义,对于年、月、日、星期的日期差,可使用Period类定义(静态方法ofDays()``ofMonths()``ofWeeks(),返回Period实例) plus()方法接受java.time.temporal.TemporalAmount实例- 2.
TemporalUnit plus()方法的另一重载版本,接受java.time.temporal.TemporalUnit实例,java.time.temporal.ChronoUnit是其实做类,使用enum实做- 3.
Temporal plus()定义在Temporal接口上- 4.
TemporalAccessor 定义了只读的时间对象读取操作
13.3.4 年历系统设计
java.time套件中的类在需要实行年历系统时采用单一ISO8601年历系统教材学习中的问题和解决过程
- 问题:p440程序中增强for循环语句含义
解决过程:将
values()方法取得的结果依次赋给新建的Month类型封装的month对象本周代码托管截图




代码调试中的问题和解决过程
- 问题:p438代码,取得时间信息为什么用了两个
getTime() - 解决过程:第一个
getTime()是Calendar实例方法,返回Date实例,第二个getTime()是Date实例方法,通过Date实例取得epoch毫秒数
其他(感悟、思考等,可选)
- 本周学习的知识一开始讲一些有关时间的各种历法的理论知识,有些觉得没有太大用处就快速看过了,结果看到后面机器时间与人类时间的不同时就理解不了了,没办法只能回头再看一遍
- 感受到了自己真正积极主动一行行的敲代码,才没能理解,达到敲代码的真正目的
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 30/30 | 1/2 | 16/16 | 基本概念 |
| 第二周 | 100/130 | 1/3 | 18/34 | 基础语法 |
| 第三周 | 100/230 | 1/4 | 26/60 | 对象封装 |
| 第四周 | 300/530 | 1/5 | 30/90 | 继承接口 |
| 第五周 | 300/830 | 1/6 | 30/120 | 异常Map、Collection |
| 第六周 | 300/1230 | 2/8 | 30/150 | 输入输出、并行 |
| 第七周 | 100/1330 | 2/10 | 10/160 | 时间日期 |
20145308刘昊阳 《Java程序设计》第7周学习总结的更多相关文章
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- 前端模板artTemplate,handlerbars的使用心得
写前端页面肯定离不开模板渲染,就近期项目中用的两个前端模板做一些使用总结,顺便复习一下,也方便后面温故. 1,artTemplate 优点: 1,一般web端用得较多,执行速度通常是 Mustache ...
- oracle一点记录
查看数据库实例名(SERVICE_NAME): sql: select instance_name from v$instance; 如何知道oracle客户端是32位还是64的.windows下启动 ...
- SVN 升级后出现You need to upgrade the working copy first.
今天将svn更新后,出现 svn: The working copy at 'E:\591woospace\kst_fashion_alipay_v1.2.0\src\com\kstapp\wansh ...
- 使用nbrbutil工具來處理requested media id is in use, cannot process request
首先我發現一個Media已經過期很久,但是并不會覆蓋重用 使用bpexpdate手動過期,失敗,讓他deassigned也不行 使用bpimmedia查看上面的image也沒有 我嘗試手動去過期,返回 ...
- windows7下安装php的imagick和imagemagick扩展教程
这篇文章主要介绍了windows7下安装php的imagick和imagemagick扩展教程,同样也适应XP操作系统,Win8下就没测试过了,需要的朋友可以参考下 最近的PHP项目中,需要用到切图和 ...
- Bag-of-words模型
Bag-of-words模型是信息检索领域常用的文档表示方法.在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法.句法等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立 ...
- 最实用的APP界面设计知识,有温度的APP设计(转)
在逛简书的时候,无意之间看到了这样的一篇非常有意思的app设计博文.顾25学堂的摘录了其中的一些关于移动端APP界面设计的精华.分享给25学堂的app设计师们. 当然,下面的这些app设计知识点是来自 ...
- How to use Ajax on Visualforce page on Salesforce platform
Just use Ajax pattern to call object data from server on visualforce page. Following is the Asynchro ...
- 【项目经验】EasyUI Tree
ITOO5.0开始了,我参加了伟大的基础系统,从整体上来说,基础系统有三个职能: 1.自己的核心职能--选课(公共选修课,专业选修课),课表: 2.为其他系统提供真实数据: 3.维护信息 而近两三天, ...
- LoadRunner11录制APP脚本(2)
通过安卓模拟器实现LoadRunner11录制APP脚本 http://www.51testing.com/html/24/15110424-3686857.html http://www.51tes ...