DateFormat:
* 1,可以把“日期对象”或者“时间毫秒值”格式化成我们喜欢的时间格式(格式化时间)
* 2,可以把字符串的时间格式解析成日期对象 * DateFormat:是一个抽象类,不能直接使用,要找他的子类:
SimpleDateFormat
* 1,时间毫秒值:从1970-01-01 00:00:00开始走到刺客的总毫秒值,1s = 1000ms
*2, SimpleDateFormat简单日期格式化
* 3,构造器:public SimpleDateFormat(String pattern)
指定时间的格式创建简单日期格式化对象
* 4,方法:
public String format(Date date):
可以把日期对象格式化成我们喜欢的时间格式返回的是字符串
* public String format(Object time):
可以把时间毫秒值格式化成我们喜欢的时间格式,返回的是字符串
* public Date parse(String date) throws ParseException:把字符串时间解析成日期对象
public class DemoDate {
public static void main(String[] args) throws ParseException {
//121秒后的时间是多少
//1,拿到此刻日期对象
Date date = new Date();
System.out.println(date);
//2,拿到此刻日期对象的时间毫秒值 往后走121s
long l = date.getTime();//现在时间
long l1 = date.getTime() + 121 * 1000;//1s = 1000ms 12s之后的时间
System.out.println(l);
//3,把时间毫秒值换成日期对象
Date date1 = new Date(l);
Date date2 = new Date(l1);
System.out.println(date1);
System.out.println(date2);
//4,创建一个简单日期格式化对象负责格式化日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE a");//2022-03-20 18:00:18 周日 下午
//5,开始调用方法格式化时间得到格式化的字符串时间形式
//日期对象格式化喜欢的时间格式
String rs = sdf.format(date1);
String rs1 = sdf.format(date2);
System.out.println(rs);
System.out.println(rs1);
//把毫秒值格式化成我们喜欢的时间格式
String format = sdf.format(l);
String format1 = sdf.format(l1);
System.out.println(format);
System.out.println(format1);
//面试题:"2019-11-04 09:30:30" 往后1天15小时 30分29秒后的时间是多少
//a 定义一个字符串时间
String dt = "2019-11-04 09:30:30";
//b 把字符串时间解析成Date日期对象
//1创建一个简单日期格式化对象负责解析字符串的时间为日期对象
//参数必须与解析的时间格式完全一致,否则执行报错
SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//2,开始解析成日期对象
Date newDt = sdft.parse(dt);
//c.得到日期对象的时间毫秒值 + 往后1天15小时 30分29秒
long time = newDt.getTime() + (24L*60*60 + 15*60*60 + 30*60 + 29) * 1000;//L 防止int溢出
//d。把时间毫秒值格式化成喜欢的字符的时间格式
System.out.println(sdft.format(time));
}
}