java.text.SimpleDateFormat日期自定义格式转换类

 

  • 前面介绍了一个日期类 java.util.Date,其返回值不易懂,并且返回日期的格式单一。
  • 例如:java.util.Date d = new  java.util.Date(); d.toString()返回的当前时间日期的格式为:Sat Feb 16 16:35:31 GMT+08:00 2019   格式单一且是英文不易懂

 

SimpleDateFormat日期的自定义格式转换类

首先需要了解一些日期的代表符号:

 yyyy    四位年
 yy       两位年
 MM    月份  始终两位
 M       月份     
 dd      始终两位日期
 d        日期
 HH    24小时制  始终两位
 H       24小时制
 hh     12小时制  始终两位

 h       12小时制
 mm   分钟   始终两位

 ss      秒  始终两位

 

1. 将java.util.Date类格式化

1.1 使用SimpleDateFormat空参构造器对Date的对象进行默认格式的格式化

  • 将Date类的对象转化成字符串来显示日期,同时也更改了date.toString()输出的日期格式
  • SimpleDateFormat.format(Date)方法:参数是Date的对象,返回一个String
  •         // 1. Date.toString()的方式输出日期
            Date date = new Date();
            System.out.println(date.toString()); //Tue Dec 15 13:05:24 CST 2020
    
            // 2.将Date类的对象格式化
            SimpleDateFormat sdf = new SimpleDateFormat();
            System.out.println(sdf.format(date)); //20-12-15 下午1:08
    

     

1.2 使用SimpleDateFormat含参构造器对Date的对象进行特定格式的格式化

      String pattern = "dd-MM-yy";//设定构造器中传入的格式
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);

        Date date = new Date();

        String dateString = sdf.format(date);//返回一个特定格式的日期字符串

        System.out.println(dateString); //15-12-20

 

 

2. 解析:格式化的逆过程:将字符串解析为Date的对象

要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现),不同的SimpleDateFormat构造器对应的字符串格式不同

2.1. 采用SimpleDateFormat空参构造器

        SimpleDateFormat sdf = new SimpleDateFormat();

        String str = "19-12-18 上午11:43";

        Date date1 = null;
        try {
            date1 = sdf.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        System.out.println(date1);

       // Wed Dec 18 11:43:00 CST 2019
  • SimpleDateFormat空参构造器对应的格式为:yyyy-MM-dd HH:mm:ss
  • 利用SimpleDateFormat.parse(str)方法,把默认格式的日期字符串赋值到str中,sdf.parse(str)返回一个Date 类的对象

2.2. 采用特定格式的SimpleDateFormat构造器

String pattern = "dd-MM-yy";//设定构造器中传入的格式
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);

        String str = "15-12-20";//需要格式化的日期字符串

        Date date = null;
        try {
            date = sdf.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        System.out.println(date); //Tue Dec 15 00:00:00 CST 2020

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值