Date:
代表的是日期和時間。
分配Date對象并初始化它以表示自標準基準時間(稱為紀元)以來的指定毫秒數,即1970年1月1日00:00:00。
有參構造器。
package cn.ensource.d3_time;import java.util.Date;public class Test1Date {public static void main(String[] args) {// 掌握Date日期類的使用// 創建一個Date類對象,代表系統當前時間信息的Date d = new Date();System.out.println(d);// 拿到時間毫秒值long time = d.getTime();System.out.println(time);// 把時間毫秒值轉換成日期對象,2s之后的時間是多少time += 2 * 1000;Date d2 = new Date(time);System.out.println(d2);// 直接把日期對象的時間通過setTime方法進行修改Date d3 = new Date();d3.setTime(time);System.out.println(d3);}
}
simpleDateFormat:
為什么要學習簡單日期格式化?
在系統中,把時間格式格式化成用戶喜歡看的形式。就要用到簡單時間格式化。
代表簡單日期格式化,可以用來把日期對象、時間毫秒值格式化成我們想要的形式。
SimpleDateFormat: 格式化和解析日期的具體類。
pattern是聲明時間格式的。
在父類DateFormat中找到format(Date date),將日期格式化成日期/時間字符串。
再在Format父類中找到format(格式化一個對象來生成一個字符串。)
package cn.ensource.d3_time;import java.text.SimpleDateFormat;
import java.util.Date;public class Test2SimpleDateFormat {public static void main(String[] args) {// 目標:掌握SimpleDateFormat的使用// 1. 準備一些時間Date d = new Date();System.out.println(d);long time = d.getTime();System.out.println(time);// 格式化日期對象,和時間毫秒值SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String rs1 = sdf.format(d);System.out.println(rs1);String rs2 = sdf.format(time);System.out.println(rs2);}
}
運行結果:
SimpleDateFormat解析字符串時間稱為日期對象
字符串時間又轉成日期對象,才能解決問題。
運行結果:
會添加一個ParseException。
案例:秒殺活動:
package cn.ensource.d3_time;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Test3 {public static void main(String[] args) throws ParseException {// 目標:完成秒殺案例// 1. 把開始時間、結束時間、小賈下單時間、小皮下單時間拿到案例程序中String start = "2023年11月11日 00:00:00";String end = "2023年11月11日 00:10:00";String xj = "2023年11月11日 00:01:18";String xp = "2023年11月11日 00:10:57";// 2. 注意:字符串的時間是沒有辦法進行運算,所以要進行格式化轉換成日期對象SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");Date dateStart = sdf.parse(start);Date dateEnd = sdf.parse(end);Date dateXj = sdf.parse(xj);Date dateXp = sdf.parse(xp);// 3. 開始判斷小皮和小賈是否秒殺成功了// 把日期對象轉成時間毫秒值long dateStartTime = dateStart.getTime();long dateEndTime = dateEnd.getTime();long dateXjTime = dateXj.getTime();long dateXpTime = dateXp.getTime();// 真正的判斷if(dateXjTime > dateStartTime && dateXjTime < dateEndTime){System.out.println("小賈,你秒殺成功!");}else {System.out.println("小賈,你秒殺失敗");}if(dateXpTime > dateStartTime && dateXpTime < dateEndTime){System.out.println("小皮,你秒殺成功!");}else {System.out.println("小皮,你秒殺失敗!");}}
}
?