20145302 《Java程式設計》第七週學習總結
教材學習內容總結
第十三章
- 時間的度量
- Greenwich Mean Time,格林威治時間,簡稱GMT時間,由觀察太陽而得來;
- Universal Time,世界時,UT;
- International Atomic Time,國際原子時,TAI;
- Coordinated Universal Time,世界協調時間,UTC;
- Unix時間,以1970年1月1日00:00:00為起點;
- epoch:java.util.Date epoch毫秒數。
- 年曆簡介
- Julian Calendar(儒略曆)四年一閏
- Gergorian Calendar(格里高利曆)
- ISO 8601標準
- 認識時區一年的毫秒數不是簡單的3652460601000
- 時間軸上瞬間的Date使用Date例項的各getTime可以獲得epoch毫秒數,**Data例項只用來當做時間軸上的某一瞬間
- 格式化時間日期的Dateformat
- 利用DataFormat可以對字串格式進行處理,分別有GetDateInstance、GetTimeInstance、GetDateTimeInstance
- 直接構建SimpleDateFormat,可以自定義字串格式 parse方法可以將指定的字串剖析Date例項
- 處理時間日期的Calendar取得Calendar例項後,可以取得年月日資訊,可以進行設定,可以進行運算來改變
- 設定TimeZoneTimeZone的getdefault可以取得預設時區的資訊
- 機器時間觀點的APIDate例項只代表機器觀點的時間資訊
- 人類時間觀點的API
- Date例項只代表機器觀點的時間資訊
- 在上面那些類的基礎上可以使用ZonedDateTime等來進行補充
- 取得月份要通過getValue()方法,而不是使用oridinal()(從0開始)方法
- 對時間的運算使用Calendar可以進行時間運算,jdk8中也提供了更加方便的時間運算方法以及輸出格式,操作相應的temporal類即可
- 年曆系統設計JDK8採用一年曆系統設計,也就是說,java.time套件中的類在需要實行年曆系統時都是採用單一的ISO8601年曆系統。需要明確實行java.time.chrono.Chronology介面的類
教材學習中的問題和解決過程
程式碼除錯中的問題和解決過程
問題教材P436TimeZoneDemo.java
中的定位功能有疑問。程式碼如下:
import static java.lang.System.out;
import java.util.TimeZone;
public class TimeZoneDemo {
public static void main(String[] args) {
TimeZone timeZone = TimeZone.getDefault();
out.println(timeZone.getDisplayName());
out.println("\t時區ID:" + timeZone.getID());
out.println("\t日光節約時數:" + timeZone.getDSTSavings());
out.println("\tUTC 偏移毫秒數:" + timeZone.getRawOffset());
}
}
結果截圖如下:
為什麼定位於上海呢?
本週程式碼託管截圖
其他(感悟、思考等,可選)
- 這周的學習令人感到愉悅
學習進度條
程式碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 1500行 | 15篇 | 400小時 | |
第一週 | 10/10 | 2/2 | 10/10 | 基礎知識 |
第二週 | 50/60 | 1/3 | 35/35 | 語法知識 |
第三週 | 100/160 | 1/4 | 25/60 | 瞭解物件 |
第四周 | 150/310 | 1/5 | 30/90 | 物件導向 |
第五週 | 390/700 | 1/6 | 30/120 | 處理異常 |
第六週 | 300/1000 | 2/8 | 30/150 | 輸入輸出 |
第七週 | 300/1300 | 2/10 | 20/170 | 時間程式碼 |