Date类记录时间的两种形式
形式1:日期对象
//1.创建一个日期对象代表了:当前系统的刺客时间对象
Date d=new Date();
System.out.println(d);
形式2:时间毫秒值
值得是从1970年1月1日 00:00:00走到此刻的总的毫秒数,应该是很大的
long time=d.getTime();
System.out.println(time);
日期的格式化
public class SimpleDateFormatDemo01 {
public static void main(String[] args) {
Date d=new Date();
System.out.println(d);
//2.格式化这个日期对象(指定最终格式化的形式)
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
//3.开始格式化日期对象成为喜欢的字符串形式
String rs= sdf.format(d);
System.out.println(rs);
}
}
案例1
请计算出2021年8月06日11点11分11秒,往后走2天14小时49分06秒后的时间是多少
public class SimpleDateFormatDemo01 {
public static void main(String[] args) throws ParseException {
//把字符串时间拿到程序中来
String dateStr="2021年08月06日 11:11:11";
//2.把字符串时间解析成日期对象:形式必须与被解析时间的形式王权一样,否则运行时解析报错!
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d=sdf.parse(dateStr);
//3.往后走2天14小时49分06秒
long time=d.getTime()+(2L*24*60*60+14*60*60+49*60+6)*1000;
//4.格式化时间毫秒值
System.out.println(sdf.format(time));
}
}
案例2
public class SimpleDateFormatDemo01 {
public static void main(String[] args) throws ParseException {
String startTime="2021-11-11 00:00:00";
String endTime="2021-11-11 00:10:00";
//2.小贾 小皮
String xiaojia="2021-11-11 00:03:47";
String xiaopi="2021-11-11 00:10:47";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1=sdf.parse(startTime);
Date d2=sdf.parse(endTime);
Date d3=sdf.parse(xiaojia);
Date d4=sdf.parse(xiaopi);
if(d3.after(d1)&& d3.before(d2)){
System.out.println("小贾秒杀成功,发货");
}else
System.out.println("小贾秒杀失败");
if(d4.after(d1)&& d4.before(d2)){
System.out.println("小皮秒杀成功,发货");
}else
System.out.println("小皮秒杀失败");
}
}
Calendar
- Calendar代表了系统此刻日期对应的日历对象
- Calendar是一个抽象类,不能直接创建对象
public static void main(String[] args) throws ParseException {
//1.拿到系统刺客日历对象
Calendar cal=Calendar.getInstance();
System.out.println(cal);
//2.获取日历信息
int year=cal.get(Calendar.YEAR);
System.out.println(year);
int mm=cal.get(Calendar.MONTH)+1;
System.out.println(mm);
int days=cal.get(Calendar.DAY_OF_YEAR);
System.out.println(days);
//请问43天后是什么时间
cal.add(Calendar.DAY_OF_YEAR,64);
//拿到此刻日期对象
Date d=cal.getTime();
System.out.println(d);
}
注意:calendar是可变日期对象,一旦修改后其对象本身的时间将产生变化