做啤酒行業(yè)的網(wǎng)站公司網(wǎng)站建設(shè)流程
JDK7時(shí)間類
全世界的時(shí)間有一個(gè)統(tǒng)一的計(jì)算標(biāo)準(zhǔn)
在同一條經(jīng)線上的時(shí)間是一樣的
格林威治時(shí)間 簡稱GMT
計(jì)算核心 地球自轉(zhuǎn)一天是24小時(shí) 太陽直射正好是12小時(shí)
但是誤差太大
現(xiàn)在用原子鐘來代替
用銫原子震動的頻率來計(jì)算時(shí)間,作為世界的標(biāo)準(zhǔn)時(shí)間UTC
中國標(biāo)準(zhǔn)時(shí)間等于世界標(biāo)準(zhǔn)時(shí)間加8小時(shí)
Date類
是JDK寫好的一個(gè)javabean類,用來描述時(shí)間,精確到毫秒
利用空參構(gòu)造創(chuàng)建的對象,默認(rèn)表示系統(tǒng)當(dāng)前的時(shí)間
利用有參構(gòu)造創(chuàng)建的對象,表示指定的時(shí)間
創(chuàng)建對象表示一個(gè)時(shí)間
成員變量 fasttime 表示時(shí)間的毫秒值
空參方法 調(diào)用system類下的方法。
有參構(gòu)造 把實(shí)參賦值給成員變量。
指的是從時(shí)間原點(diǎn)開始過了0毫秒后的時(shí)間
gettime方法可以獲得當(dāng)前時(shí)間的毫秒值
示例
打印時(shí)間原點(diǎn) 開始一年后 之后的時(shí)間
定義任意兩個(gè)Date對象,比較哪個(gè)時(shí)間在前,哪個(gè)時(shí)間在后
對象不可直接比較 運(yùn)算
要用方法把某些屬性獲取出來
總結(jié)
如何創(chuàng)建日期對象
空參構(gòu)造
帶參構(gòu)造
如何修改時(shí)間對象里的毫秒值
如何獲取時(shí)間對象里的毫秒值
SimpleDateFormat類
Date類只能是默認(rèn)方式打印
這 不符合我們的閱讀習(xí)慣
SimpleDateFormat
可以
把時(shí)間變?yōu)樽约合矚g的格式
也可以解析時(shí)間
格式
利用空參構(gòu)造創(chuàng)建對象
使用的是默認(rèn)格式
利用帶參構(gòu)造創(chuàng)建對象
可以指定格式
ctrl alt v 可以自動生成左邊 創(chuàng)建對象
ctrl alt m 可以抽取生成方法
創(chuàng)建對象的格式要和創(chuàng)建字符串的格式一樣
然后解析
返回一個(gè)Date對象
練習(xí)1
輸入字符串
用字符串接收
創(chuàng)建一個(gè)date對象表示
創(chuàng)建一個(gè)simpledateformat對象,并定義格式為年月日
轉(zhuǎn)換時(shí)間
練習(xí)2
先解析時(shí)間得到毫秒值
得到date對象
再得到毫秒值
再進(jìn)行判斷
總結(jié)
SimpleDateFormat的兩個(gè)作用
格式化
解析
如何指定格式
yyyy年MM月dd日:mm:ss
去Apl幫助文檔中去找就ok了
Calendar類
為什么學(xué)習(xí)這個(gè)類呢
以前的方法
現(xiàn)在簡化代碼
只修改月份
日歷 修改 再原來的基礎(chǔ)上加1
所以Calendar類
代表了 系統(tǒng)當(dāng)前時(shí)間的日歷對象,可以單獨(dú)修改
但是個(gè)抽象類
不能直接創(chuàng)建對象
而是通過靜態(tài)方法來獲取到子類對象
常用方法
示例
Date(0L)表示計(jì)算機(jī)的時(shí)間原點(diǎn)
月份0-11
如果獲取出來的是0,就是1月
如果是11,就是12月
星期
在老外眼里,周日是一周中的第一天
1就是周日
Java為了防止我們忘記數(shù)組的索引
把索引都定義為常量
我們可以查看源碼 來尋找
所以我們可以
我們可以利用查表法
將數(shù)據(jù)和索引產(chǎn)生對應(yīng)的關(guān)系
這樣就可以返回
修改年份 月份
用set方法
增加一個(gè)月,一年
總結(jié)
JDK8時(shí)間類
JDK7時(shí)間類
為什么要學(xué)習(xí)JDK8的時(shí)間類
因?yàn)楹唵味曳奖?/p>
JDK7代碼麻煩
要用日期對象計(jì)算比較毫秒值
JDK8代碼簡單
判斷的方法
計(jì)算時(shí)間間隔的方法
安全層面
JDK7多線程環(huán)境下會導(dǎo)致數(shù)據(jù)安全問題
JDK8時(shí)間日期對象都是不可變的,解決了這個(gè)問題
分成四組
ZoneId類
獲得時(shí)區(qū)名稱 返回方式是集合
獲取當(dāng)前系統(tǒng)的默認(rèn)時(shí)區(qū)
可以在系統(tǒng)設(shè)置里面更改日期和時(shí)間
改變時(shí)區(qū)
獲得一個(gè)指定的時(shí)區(qū)
總結(jié)
Instant類
時(shí)間戳
方法大全
ctrl + alt + v 可以自動生成左邊
獲得當(dāng)前的標(biāo)準(zhǔn)時(shí)間
根據(jù) 秒 毫秒 納秒 獲得Instant對象
獲得了計(jì)算機(jī)原點(diǎn)的時(shí)間
秒鐘
獲得秒數(shù)
納秒
獲得納秒
時(shí)間原點(diǎn)后過了多少納秒
指定時(shí)區(qū)
判斷系列的方法
返回值是布爾類型
減少時(shí)間系列的方法
以當(dāng)前時(shí)間為基準(zhǔn),往前去減少時(shí)間
原有的時(shí)間對象是不會變的
會返回一個(gè)新的時(shí)間對象
增加時(shí)間系列的方法
同減少時(shí)間系列的方法
ZoneDateTime類
帶有時(shí)區(qū)的時(shí)間
靜態(tài)方法獲取對象
減少時(shí)間增加時(shí)間
可以增加時(shí)間 年 月 日
細(xì)節(jié)
JDK8的時(shí)間對象都是不可變的
我們修改了 只能產(chǎn)生新的時(shí)間對象
DateTimeFormatter類
用于時(shí)間的格式化和解析
獲取時(shí)間對象
解析/格式化器
格式化
格式化時(shí)間的意思是 把時(shí)間轉(zhuǎn)化成我們?nèi)粘?梢姷母袷?/p>
轉(zhuǎn)化成我們需要的格式
Calendar類
Localdate獲得年月日
轉(zhuǎn)換
調(diào)用方法
獲得的月份英文大寫
獲得的月份數(shù)字
獲得日期
獲取一年中的第幾天
獲取星期
get開頭 獲取
看見要知道意思
案例
假設(shè)為聯(lián)通移動發(fā)送生日祝福短信
Localtime獲得時(shí)分秒
LocalDateTime 年月日時(shí)分秒
Duration類
用于計(jì)算時(shí)間間隔 秒 納秒
Period類
用于計(jì)算日期間隔 年月日
ChronnUnit類
用于計(jì)算日期間隔
所有的數(shù)據(jù)全出來