JAVA_格式化解析日期或时间

java.txt.SimpleDateFormat类

java.txt.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
允许进行 格式化 :日期 —>文本, 解析 :文本 —>日期

  • 格式化
    – SimpleDateFormat() : 默认的模式和语言环境创建对象
    – public SimpleDateFormat(String pattern) : 该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用fromat()和parse()方法
    – public String format(Date date) : 方法格式化时间对象date
  • 解析
    – public Date parse(String source) : 从给定字符串的开始解析文本,以生成一个日期
    @Test
    public void test1() throws ParseException {
       /**
         * SimpleDateFormat的使用:SimpleDateFormat对日期Date类的格式化和解析
         * 1,两个操作
         * 1.1 格式化:日期 --->字符串(文本)
         * 1.2 解析:格式化的逆过程,字符串(文本) --->日期
         *
         * 2,SimpleDateFormat的实例化
         */
        //实例化SimpleDateFormat:使用默认的构造器
        SimpleDateFormat sdf = new SimpleDateFormat();

        //格式化:日期 ---> 文本
        Date date = new Date();
        System.out.println(date);//Tue Nov 03 16:11:22 CST 2020
        String format = sdf.format(date);
        System.out.println(format);//20-11-3 下午4:11

        //解析:格式化的逆过程,字符串(文本) --->日期(parse 是语法分析的意思)
//        String str = "20-11-3 下午4:11";//当使用空参构造器时,只能使用这种日期时间格式的参数,不能自定义格式,带参构造器可以
        Date parse = sdf.parse(format);
        System.out.println(parse);//Tue Nov 03 16:11:00 CST 2020

        //new SimpleDateFormat(Pattern):使用带参构造器(参数pattern为样版)
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        //格式化
        String format1 = sdf1.format(date);
        System.out.println(format1);//2020-11-03 04:11:22

        //解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现),否则,抛异常
        Date parse1 = sdf1.parse(format1);
        System.out.println(parse1);//Tue Nov 03 04:11:22 CST 2020
    }
    /*
    案例:字符串"2020-09-08"转换为java.sql.Date
     */
    @Test
    public void test2() throws ParseException {
        String birth = "2020-09-08";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf.parse(birth);//这个Date是util下的Date,Tue Sep 08 00:00:00 CST 2020
        System.out.println(date);
        java.sql.Date birthDate = new java.sql.Date(date.getTime());
        System.out.println(birthDate);
    }

java.time.format.DateTimeFormatter类

在此只列出自定义格式:如:ofPattern(“yyyy-MM-dd hh:mm:ss”)

方法描述
ofPattern(String pattern)静态方法,返回一个指定字符串格式的DateTimeFormatter
format(TemporalAccessor t)格式化一个日期,时间,返回字符串
parse(CharSeauence text)将指定格式的字符序列解析为一个日期,时间
    @Test
    public void test3(){
        LocalDateTime localDateTime = LocalDateTime.now();
        //方式三:自定义
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        //格式化
        String str2 = formatter.format(LocalDateTime.now());
        System.out.println(str2);
        //解析
        TemporalAccessor parse1 = formatter.parse(str2);
        System.out.println(parse1);
        /*
        2020-11-03 03:37:34
		{MinuteOfHour=37, MilliOfSecond=0, NanoOfSecond=0, HourOfAmPm=3, SecondOfMinute=34, MicroOfSecond=0},ISO resolved to 2020-11-03
         */
    }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值