222/223DateFormat类与SimpleDateFormat类介绍和DateFormat类的format方法与parse方法

DateFormat类与SimpleDateFormat类介绍

java.text.DateFormat 是日期/时间格式化子类的抽象类,

 

我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。

 

格式化:按照指定的格式,从Date对象转换为String对象。

 

解析︰按照指定的格式,从String对象转换为Date对象。

 

构造方法

由于 Dateformat为抽象类,不能直接使用,所以需要常用的子类 java. text, simpledateformat。这个类需要一个模式

(格式)来指定格式化或解析的标准。构造方法为  

public simpledate Format( String pattern)∴用给定的模式和默认语言环境的日期格式符号构造Simple Date Format.

参数pattern是一个字符串代表日期时间的自定义格式

格式规则

 

 主要用于

 

 

 

java.text.DateFormat:是日期/时间格式化子类的抽象类

作用:
  格式化 (也就是日期->文本)、解析(文本->日期) 

成员方法:
    String format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串

    Date parse(String source)把符合模式的字符串,解析为Date日期

    DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat的子类

    java.text.simpLeDateFormat extends DateFormat
构造方法:
    SimpLeDateFormat(String pattern)用给定的模式和Z认语言环境的日期格式符号构造simpLeDateForma

参数:

    String pattern:传递指定的模式模式:区分大小写的

    写对应的模式,会把模式替换为对应的日期和时间
      "yyyy-M-dd HH : mm: ss"
      "yyyy 年 mm 日 HH 日 mm 分 ss 秒”

注意:

  模式中的字母不能更改,连接模式的符号可以改变

 DateFormat类的format方法与parse方法

format方法

使用DateFormat类中的方法format,把日期格式化为文本

string format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串

复制代码
 public static void main(String[] args) throws ParseException {
        demo01();
        demo02();

    }
    /*
    使用 Dateformat类中的方法 format,把曰期格式化为文本
    String format( Datedate)按照指定的模式,把Date日期,格式化为符合模式的字符串
    使用步骤:1.创建 Simpledate Format对象,构造方法中传递指定的模式
    2.调用 Simpledate Format对象中的方法 format,按照构造方法中指定的模式,把pote日期格式化为符合模式的字符串(文本)
    */
    private static void demo01() {
        //1.创建 Simpledate Format对象,构造方法中传递指定的模式
        SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat s1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        Date date = new Date();
        String a1 = s.format(date);
        String a2 = s1.format(date);
        System.out.println(a1);//2022-07-06 09:38:44
        System.out.println(a2);//2022年07月06日 09时38分44秒
    }
复制代码

 

复制代码
private static void demo02() {
        SimpleDateFormat q = new SimpleDateFormat("aaaa-BB-cc DD:ee:ff");
SimpleDateFormat q1
= new SimpleDateFormat("aaaaBBccDDeeff"); Date date = new Date();
String w1
= q.format(date);
String w2
= q1.format(date);
System.
out.println(w1);//2022-07-06 09:38:44
System.out.println(w2);//2022年07月06日 09时38分44秒 }
复制代码

 

parse方法

使用DateFormat类中的方法parse,把文本解析为日期

Date parse( String source)把符合模式的字符串,解析为Date日期

注意:
  public Date parse(String source) throws ParseExceptionparse方法声明了一个异常叫ParseException解析异常

  如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常

  调用一个抛出了异常的方法,就必须的处理这个异常,要么throws继续声明抛出这一个异常,要么try...catch自己处理这个异常

复制代码
  public static void main(String[] args) throws ParseException {
        demo01();
        demo02();

    }

/*
    使用 Dateformat类中的方法 parse,把文本解析为日期
    Date parse( String source)把符合模式的字符串,解析为Date日期
    使用步骤:
    1.创建 Simpledate Format对象,构造方法中传递指定的模式
    2.调用Simpledate Format对象中的方法parse把符合构造方法中模式的字符串,解析为Date日期

    注意:
    public Date parse (string source )throws Parseexception
    parse方法声明了一个异常叫 Parseexception解析异常
    如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常
    调用一个抛出异常的方法,就必须的处理这个异常,要么 throws继续声明抛出这一个异常,要么try....catch自己处理这个异常
     */
    private static void demo02() throws ParseException {
        //1.创建 Simpledate Format对象,构造方法中传递指定的模式
        SimpleDateFormat a1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        //2.调用Simpledate Format对象中的方法parse把符合构造方法中模式的字符串,解析为Date日期
        Date date = a1.parse("2022年07月06日 09时38分44秒");
        System.out.println(date);
    }
复制代码

 

复制代码
/*
   练习:
   请使用日期时间相关的API计算出一个人已经出生多少天
   分析:
   1.使用Scannen类中的方法next,获取出生日期
   2.使用DateFormat类中的方法parese把字符串的出生日期解析为Date格式
   3.把Date格式出生日期转换为毫秒值
   4.获取当前的日期,转换为毫秒值
   5.使用当前的毫秒值减去出生日期的毫秒值
   6.把毫秒值的差转化为天(s/100/60/60/26)
    */
public class Demo02Test {

    public static void main(String[] args) throws ParseException {
        //  1.使用Scannen类中的方法next,获取出生日期
        Scanner sc = new Scanner(System.in);
        System.out.println("输入出生日期");
        String s = sc.next();
        //2.使用DateFormat类中的方法parese把字符串的出生日期解析为Date格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date bir = sdf.parse(s);
        //3.把Date格式出生日期转换为毫秒值
        long time = bir.getTime();
        //4.获取当前的日期,转换为毫秒值
        long today = new Date().getTime();
        //5.使用当前的毫秒值减去出生日期的毫秒值
        long  a1= today-time;
        // 6.把毫秒值的差转化为天(s/1000/60/60/24)
        
    }
}
复制代码

 

posted @   ja不会va  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示