写点什么

Java 重点 | DateFormat 和 SimpleDateFormat 类

作者:几分醉意.
  • 2022-10-29
    安徽
  • 本文字数:2158 字

    阅读完需:约 7 分钟

Java重点 | DateFormat和SimpleDateFormat类

DateFormat 和 SimpleDateFormat 类


DateFormat 类和它的子类 SimpleDateFormat,后者是前者的子类,所以它有父类的 format 和 parse 方法。


java.text.DateFormat:是日期/时间格式化子类的抽象类。作用: 格式化(也就是日期->文本) 、解析(文本->日期)

构造方法

DateFormat 类是一个抽象类,无法直接创建对象使用,可以使用 DateFormat 类的子类 java.text.SimpleDateformat extends DateFormat 构造方法:SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。参数: String pattern:传递指定的模式


模式:区分大小写



写对应的模式,会把模式替换为对应的日期和时间 “yyyy-MM-dd HH:mm:ss”注意:模式中的字母不能更改,连接模式的符号可以改变"yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒"

成员方法

String format(Date date)按照指定的模式,把 Date 日期,格式化为符合模式的字符串 Date parse(String source)把符合模式的字符串,解析为 Date 日期

使用这两个成员方法及其细节

public static void main(String[] args) throws ParseException {        demo01();        demo02(); //调用的方法也会出红线,也要光标放红线上alt+回车选择第一个    }
private static void demo01() { //使用DateFormat类中的format方法,把日期格式转化为文本 //1.创建SimpleDateFormat对象,构造方法中传递指定的模式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年mm月dd日 HH时mm分ss秒");//传入指定的模式 //2.调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式转换为符合模式的字符串(文本) //String format(Date date) 按照指定模式,把Date日期,格式化为符合模式的字符串 Date date =new Date(); //获取当前系统时间 String format = sdf.format(date); System.out.println(date); //Sun May 09 16:09:50 CST 2021 System.out.println(format); //2021年09月09日 16时09分50秒 }

/* 使用DateFormat类中的parse方法,把文本解析成为Date日期 1.创建SimpleDateFormat对象,构造方法中传递指定的模式 2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期 注意: public Date parse(String source)throws ParsejException parse方法声明一个异常叫ParseException 如果字符串和构造方法的模式不一样,那么程序就会抛出异常 调用一个抛出异常的方法,就必须的处理这个异常 要么throws继续抛出这个异常,要么try catch自己处理 出现红色的线,有异常,光标放红线上alt+回车选择第一个;调用的方法也会出红线,也要光标放红线上alt+回车选择第一个 这就是在我的方法声明这个异常,我不处理,我声明一下 程序没有问题,正常执行 出现问题,打印异常,并终止程序 */ private static void demo02() throws ParseException {
//使用DateFormat类中的parse方法,把文本解析成为Date日期 //1.创建SimpleDateFormat对象,构造方法中传递指定的模式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年mm月dd日 HH时mm分ss秒");//传入指定的模式
//Date parse(String source) 把符合,模式的字符串,解析为Date日期 //2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期 /* 出现红色的线,有异常,光标放红线上alt+回车选择第一个;调用的方法也会出红线,也要光标放红线上alt+回车选择第一个 这就是在我的方法声明这个异常,我不处理,我声明一下 */// 把字符串类型按照传入构造模式解析成为Date类型,传入指定模式和字符串要一样,字符串这边少个秒就报错 Date parse = sdf.parse("2021年09月09日 16时09分50秒"); System.out.println(parse);//Sat Jan 09 16:09:50 CST 2021 }
复制代码

练习


public static void main(String[] args) throws ParseException {        Scanner scanner = new Scanner(System.in); // 输入:2001-07-02         System.out.println("请输入出生日期(格式为yyyy-mm-dd):");        String next = scanner.next(); //拿到字符串出生日期
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd"); Date parse = simpleDateFormat.parse(next); //把字符串出生日期解析成为DAte格式 long ee = parse.getTime(); // 把Date格式的出生日期转换为毫秒值
Date aa = new Date(); //获取当前日期毫秒值 long hh = aa.getTime(); //把当前日期毫秒值转换成为毫秒值// Date aa = new Date().getTime(); 一步到位 匿名
long dd = hh-ee; //差值 long jj = dd/1000/60/60/24; //把毫秒值转换成为天 System.out.println(jj); // 输出:7908。 代表着 2001-07-02 到今天已经过了7908天// System.out.println(dd/1000/60/60/24); //一步到位
}
复制代码


发布于: 刚刚阅读数: 4
用户头像

几分醉意.

关注

还未添加个人签名 2022-10-22 加入

还未添加个人简介

评论

发布
暂无评论
Java重点 | DateFormat和SimpleDateFormat类_Java_几分醉意._InfoQ写作社区