• 20145337《JAVA程序设计》第七周学习总结


    20145337 《Java程序设计》第七周学习总结

    教材学习内容总结

    时间的度量

    • 格林威治时间GMT,世界时UT,国际原子时TAI,世界协调时间UTC
    • 就目前来说,即使标注为GMT,实际上谈到时间指的是UTC时间
    • 秒的单位定义是基于TAI,也就是铯原子辐射振动次数
    • UTC考虑了地球自转越来越慢而有闰秒修正,确保UTCUT相差不会超过0.9秒。最近一次的闰秒修正为2012年6月30日,当时TAI实际上已超前UTC有35秒之长
    • Unix时间是1970年1月1日00:00:00为起点而经过的秒数,不考虑闰秒,不少来自于Unix的系统、平台、软件等,也都选择这个时间作为时间表示法的起算点。
    • Epoch为某个特定时代的开始,时间轴上的某一瞬间。
    • 儒略历:修正了罗马历隔三年设置一闰年的错误,改采四年一闰。
    • 格力高利历:将儒略历1582年10月4号星期四的隔天,订为格里高利历1582年10月15日星期五。
    • ISO 8601标准,采用统一的数据格式例如:yyyy-mm-ddTHHH:MM:SS.SSS等。

    UTL偏移

    • 日光节约时间:也称为夏季时间,基本上就是在实施的第一天,让白天的时间增加一小时,而最后一天结束后再调整一小时回来。
    • 如果想取得系统时间,方法之一就是使用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());
      }
      }
      

    处理时间日期的Calendar

    • Date建议作为时间轴上的瞬时代表,要格式化时间日期则通过DateFormat,如果想要取得某个时间日期信息,或者是对时间日期进行操作,可以使用calendar。
    • 建立Calendar实例,可以使用get()方法并指定Calendar上的字段。 使用add()方法改编时间,使用roll()方法只针对日期中的某个字段加减。

    设定TimeZone

    • 使用Calendar时,并没有使用时区信息,这回使用该默认时区,可以使用java.util.TImeZone的getDefault()来取得默认时区信息
    • 可用的ID可以使用TimeZone.getAvailableIDs()来取得,它会返回String[]

    机器时间观点的API

    • 由于某一时区已经不实施日光节约一段时间了,许多开发者并不知道过去有过日光节约时间,在取得Date实例后,被名称Date误导他们代表日期,所以不应该使用Data实例来得知人类观点的时间信息。
    • 真正可靠的信息只有内含epoch毫秒数。同时也可以使用Instant的静态方法now()取得代表Java epoch毫秒数的Instant实例。

    人类时间观点的API

    • LocalDateTime只包括时间与日期,LocalDate只有日期,LocalTime只有时间,他们都是对时间的描述,没有时区信息。
    • 若需要时区信息,可基于上述三个时间描述的ZoneDateTime和OffsetDateTIme.

    对时间的运算

    • 1.TemporalAmount
    • 时间差以Duration定义,日期差以Period定义。
    • 2.TemporalUnit
    • between()方法用于计算时间差
    • 3.Temporal
    • 4.TemporalAccessor定义了只读的时间对象

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

    这周的内容很细致,没什么问题

    本周代码托管截图


    其他(感悟、思考等,可选)

    这周的学习任务比较轻松,课本上对时间这部分的讲解也很细致,容易理解

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 300/500 2/4 18/38
    第三周 500/1000 3/7 22/60
    第四周 300/1300 2/9 30/90
    第五周 200/1300 2/9 10/90
    第六周 200/1300 2/9 10/90
    第七周 300/1300 2/9 10/90

    参考资料

  • 相关阅读:
    缓慢变化纬的解决方法
    行转列且有序
    异常处理
    继承
    js的隐式转化
    初步了解微任务
    axios中断请求AbortController
    Vue解决V-HTML指令潜在的XSS攻击('v-html' directive can lead to XSS attack vue/no-v-html)
    axios下载后台传过来的流文件并设置下载文件名(如excel)
    axios异步获取文件流数据
  • 原文地址:https://www.cnblogs.com/5337my/p/5400978.html
Copyright © 2020-2023  润新知