DateFormat是日期/时间格式化子类的’抽象类’
作用:
格式化(日期——>文本)、解析(文本——>日期)Date
成员方法:
1.String format(Date date):按照指定模式,把Date日期,格式化为符合模式的字符串
2.Date parse (String source):把符合模式的字符串,解析为Date日期
DateFormat是一个抽象类,无法创建对象使用,可以使用其子类SimpleDateFormat
SimpleDateFormat extends DateFormat
构造方法:
SimpleDateFormat(String pattern):使用给定模式并使用默认语言环境的日期格式符号的构造方法
参数:
String pattern:传递指定的模式
模式:(模式中的字母不能更改,连接符号可以改变)
区分大小写 eg: “yyyy-MM-dd” //年月日 “HH:mm:ss” //时分秒
笔记
private static void demo() throws ParseException {//1.String format(Date date):按照指定模式,把Date日期,格式化为符合模式的字符串//创建SimpleDateFormat对象,在构造方法中传递指定的模式SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss秒");Date date01 = new Date();//调用SimpleDateFormat对象中的方法formatString timeText = sdf.format(date01);System.out.println("格式化之后的文本:" + timeText);System.out.println("一般的Date格式:" + date01);//2.Date parse (String source):把符合模式的字符串,解析为Date日期/*-----public Date parse(String source) throws ParseException-----parse方法声明了一个异常叫ParseException(解析异常)如果字符串和构造方法中的模式不一样,那么程序会抛出该异常,调用一个抛出异常的方法,就必须处理异常,要么throws抛出异常,要么try-catch自己处理异常*/Date date02 = sdf.parse("2021年03月29日 10点30分11秒");//Date date02 = sdf.parse("2021年03月29日 10点30分11"); //模式不一样,抛出解析异常System.out.println("解析后的日期:" + date02);}public static void main(String[] args) throws ParseException {demo();}
运行结果:

自己的测试练习
计算自己从出生到现在活了多少天
分析:
1.Scanner输出日期
2.DateFormat类的parse方法,把输入的字符串解析为Date格式
3.把Date格式的日期转换为毫秒值
4.获取当前日期,转换为毫秒值
5.当前毫秒值减去生日毫秒值
6.把毫秒值的差值转换为天(s/1000/60/60/24)
public static void main(String[] args) throws ParseException {//1.Scanner输出日期Scanner sca = new Scanner(System.in);System.out.println("---欢迎使用‘被自己消耗的时间’计算器---");System.out.println("本计算器用于计算你在这个世界上呼吸的天数");System.out.println("请输入的你生日:(格式为:年.月.日)");String birthdayDateS = sca.next();//2.DateFormat类的parse方法,把输入的字符串解析为Date格式SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");Date birthdayDate = sdf.parse(birthdayDateS);//3.把Date格式的日期转换为毫秒值long birthdayTime = birthdayDate.getTime();//4.获取当前日期,转换为毫秒值long todayTime = new Date().getTime();//5.当前毫秒值减去生日毫秒值long time = todayTime - birthdayTime;//6.把毫秒值的差值转换为天(s/1000/60/60/24)System.out.println("从你出生到现在,你呼吸了"+time/1000/60/60/24+"天了,时间是不是过的很快?");System.out.println("温馨意识: 若某天你感觉呼吸困难,请先前往医院进行核酸检测再申请办理入院大礼包哦!");
运行结果:

总结
日期的运用要注意时区,如果涉及到计算要先把时间转换为毫秒来进行计算。
















