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("小皮,你秒杀失败!");
- }
- }
- }