/**
* 測(cè)試Date類(lèi)
* DateFormat抽象類(lèi) SimpleDateFormat類(lèi) 用于日期和字符串之間轉(zhuǎn)換
*/
public class TestDate {
public static void main(String[] args) {
long nowTime = System.currentTimeMillis();
//返回當(dāng)前時(shí)間 單位毫秒 從1970-01-01 0:00開(kāi)始計(jì)算的總毫秒值 在1970以后為正數(shù) 以前為負(fù)數(shù)
//JAVA.lang.System類(lèi)靜態(tài)方法
long max = Long.MAX_VALUE;
//包裝類(lèi)Long中存放常量 MAX MIN
long range = max/(1000L*3600*24*365);
//1000毫秒 加L轉(zhuǎn)為long類(lèi)型防止int溢出
System.out.println(range+"的結(jié)果為292471208");
//范圍為正負(fù)2.9億年
Date d1 = new Date();
System.out.println(d1+"的結(jié)果為Mon Jul 11 20:52:25 CST 2022");
//無(wú)參new Date()返回當(dāng)前時(shí)間的Date對(duì)象 d1.fastTime存儲(chǔ)當(dāng)前時(shí)間System.currentTimeMillis()的long值
System.out.println(d1.getTime()+"的結(jié)果為1657544258209");
//.getTime()返回fastTime
System.out.println(d1.getTime()/(1000L*3600*24*365)+"的結(jié)果為52 即從1970至今(2022)52年");
Date d2 = new Date(1000L*3600*24*365*52);
//傳參long 毫秒
System.out.println(d2+"的結(jié)果為Sun Dec 19 08:00:00 CST 2021 有閏年所以有誤差");
SimpleDateFormat df = new SimpleDateFormat();
//format格式化 ()中的參數(shù)為字符串 通過(guò)輸入的字符串設(shè)定日期的匹配格式和輸出格式 無(wú)參默認(rèn)格式為"yy-MM-dd 上/下午hh:mm" DateFormat為抽象類(lèi) 可以用做引用類(lèi)型 構(gòu)造器需要用SimpleDateFormat()
System.out.println(df.format(d1)+"的結(jié)果為22-7-11 下午9:38");
//yy22 MM7 dd11 下午 hh9 :mm38 .format()將Date對(duì)象轉(zhuǎn)換為字符串String 按照df設(shè)定好的格式
try {
System.out.println(df.parse("90-12-20 上午11:30"));
//parse解析操作要求處理ParseException try/catch和throws二選一
//結(jié)果為T(mén)hu Dec 20 11:30:00 CST 1990
//.parse()將符合設(shè)定格式的字符串轉(zhuǎn)換為Date對(duì)象 print的結(jié)果為Date對(duì)象.toString 所以格式和設(shè)定的格式不同
//這里90轉(zhuǎn)換為1990
} catch (ParseException e) {
throw new RuntimeException(e);
}
DateFormat df2 = new SimpleDateFormat("年份:yyyy 月份大寫(xiě)的:MM 日:dd 小時(shí)0-23:HH 分鐘:mm 秒:ss 年里的第幾周:w 年里的第幾天:D 星期幾大寫(xiě)的:EEE三個(gè)字符就顯示單詞的前三位");
try {
Date d4 = df2.parse("年份:2022 月份大寫(xiě)的:07 日:11 小時(shí)0-23:22 分鐘:04 秒:25 年里的第幾周:29 年里的第幾天:192 星期幾大寫(xiě)的:星期一三個(gè)字符就顯示單詞的前三位"/*中文環(huán)境下顯示為漢字星期幾*/);
System.out.println(d4+"的結(jié)果為Mon Jul 11 22:04:25 CST 2022");
//格式中的EEE在中文環(huán)境下變成了 星期幾 格式中的字母是固定含義的 比如年份只能用y表示 不同在于 yy代表末尾兩位數(shù) yyyy代表四位年份 但第幾周的w一個(gè)就對(duì)應(yīng)了29 第幾天的D一個(gè)就對(duì)應(yīng)了192
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}






