传统的日期和时间
Date
- 代表的是日期和时间
构造器 | 说明 |
---|---|
public Date() | 创建一个Date对象,代表的是系统当前此刻日期时间 |
public Date(long time) | 把时间毫秒值转换成Date日期对象 |
import java.util.Date;public class Test {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
- 代表简单日期格式化,可以用来把日期对象、时间毫秒值格式化成我们想要的格式。
例子
给定的日期和时间是 2001-07-04 12:05:56
import java.text.SimpleDateFormat;
import java.util.Date;public class Test {public static void main(String[] args){// 目标:掌握SimpleDateFormat的使用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 EEE a");String rs = sdf.format(d);String rs2 = sdf.format(time);System.out.println(rs);System.out.println(rs2);}
}
时间格式的常见符号:
SimpleDateFormat解析字符串时间成为日期对象
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Test {public static void main(String[] args) throws ParseException {// 目标:掌握SimpleDateFormat解析字符串时间成为日期对象String dateStr = "2022-12-12 12:12:11";// 创建简单日期格式化对象,指定的时间格式必须与被解析的时间格式一模一样,否则出现会出bugSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date d = sdf.parse(dateStr);System.out.println(d);}
}
案例练习
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Test {public static void main(String[] args) throws ParseException {// 目标:掌握SimpleDateFormat解析字符串时间成为日期对象String start = "2023年11月11日 0:0:0";String end = "2023年11月11日 0:10:0";String xj = "2023年11月11日 0:1:18";String xp = "2023年11月11日 0:10:57";SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 H:m:s");Date startDt = sdf.parse(start);Date endDt = sdf.parse(end);Date xjDt = sdf.parse(xj);Date xpDt = sdf.parse(xp);long startTime = startDt.getTime();long endTime = endDt.getTime();long xjTime = xjDt.getTime();long xpTime = xpDt.getTime();if (xjTime >= startTime && xjTime <= endTime){System.out.println("小贾您秒杀成功");}else {System.out.println("小贾您秒杀失败");}if (xpTime >= startTime && xpTime <= endTime){System.out.println("小皮您秒杀成功");}else {System.out.println("小皮您秒杀失败");}}
}
Calendar
- 代表的是系统此刻时间对应的日历。
- 通过它可以单独获取、修改时间中的年、月、日、时、分、秒等。
Calendar日历类的常见方法
import java.util.Calendar;
import java.util.Date;public class Test {public static void main(String[] args){// 目标:掌握Calendar的使用和特点// 得到系统此刻时间对应的日历对象Calendar now = Calendar.getInstance();System.out.println(now);// 获取日历中的某个信息int year = now.get(Calendar.YEAR);System.out.println(year);int days = now.get(Calendar.DAY_OF_YEAR);System.out.println(days);// 拿到日历中记录的日期对象Date d = now.getTime();System.out.println(d);//拿到时间毫秒值long time = now.getTimeInMillis();System.out.println(time);// 修改日历中的某个信息now.set(Calendar.MONTH,9);now.set(Calendar.DAY_OF_YEAR,125);System.out.println(now);// 为某个信息增加或者减少多少now.add(Calendar.DAY_OF_YEAR,100);now.add(Calendar.DAY_OF_YEAR,-10);now.add(Calendar.DAY_OF_MONTH,6);now.add(Calendar.HOUR,12);System.out.println(now);}
}