java学习经历----常用日期类 Date及其解析

1 篇文章 0 订阅

下面的代码很长 但是列举了Date类和格式化输出的具体例子,由于有些转换字母很多,可以参照API查看,下面的代码都是可以2-4行分开看,没有连贯性,都是多个小例子

        Date date = new Date();
        long time = date.getTime();     //获得与1970年相差年数转换成毫秒
![这是一张printf方法关于格式化日期的字母截图,详情可查看API](http://img.blog.csdn.net/20160808204025835)
        System.out.printf("%tF %<tT %<tA" ,date);   //日期      时间       星期  “< ”表示继续使用前边的变量
        System.out.println(time/1000/60/60/24/365);    //显示当前时间与1970.1.1之间的相差时间  毫秒计算   转换成年

        String da = String.format("%tF", date);        //String类的format()方法实现格式化,获得格式化后的字符串
        System.out.println(da);



        //利用DateFormat是抽象类,无法通过new创建对象,但是可以利用静态方法获得,调用format()方法实现格式化。

        DateFormat df = DateFormat.getDateInstance();  //获取日期格式器
        String s = df.format(new Date());
        System.out.println(s);                     //显示效果为年-月-日     不带前置0



        df = DateFormat.getInstance();               // SHORT 风格的默认日期/时间格式器
        s = df.format(new Date());
        System.out.println(s);                   //年份简写,月,日不带前置0    12小时制时间 带上下午提示



        df = DateFormat.getDateTimeInstance();         //获取日期/日期格式器
        s = df.format(new Date());
        System.out.println(s);                      //输出无前置日期,24小时制时间



        df = DateFormat.getTimeInstance();            //获得时间格式器;
        s = df.format(new Date());
        System.out.println(s);                      //24小时制时间
        //基本上只有利用格式控制符,日期才带有前置0



        //将指定字符转换成Date对象,日期格式器
        String str = "2016-8-8";             
        Date date1 = DateFormat.getDateInstance().parse(str);  //获取日期格式器,解析文本的日期,给定的字符序列必须为 yyyy-mm-dd或yyyy-m-d;
        System.out.println(date1);



        //日期/时间格式器
        String str1 = "2016-8-9 17:25:26";
        Date date2 = DateFormat.getDateTimeInstance().parse(str1);   //时间日期格式器  序列  yyyy-m-d h:M:s
        System.out.println(date2);



    //short风格,时间/日期格式器
        String str2 = "2016-8-10 上午12:45";
        Date date3 = DateFormat.getInstance().parse(str2);       //格式  yyyy-m-d(有一个空格) (上午/下午)h:M  12小时制时间 也可以使 yy-m-d ...同前面
        System.out.println(date3);



        //时间格式器
        String str3 = "12:25:25";
        Date date4 = DateFormat.getTimeInstance().parse(str3);  //格式 h:M:s   24小时制时间
        System.out.println(date4);
        System.out.println("=======================================================================");



![SimpleDateFormat的介绍关于解析字符的列举](http://img.blog.csdn.net/20160808204715031)     
        //DateFormat 子类    SimpleDateFormat 测试         对比DateFormat  转换更灵活,每个字母都可以代表独立的转换

        SimpleDateFormat sdf = new SimpleDateFormat("我希望这样输出日期y-M-d h:m:s");
        String str4 = sdf.format(new Date());   
        System.out.println(str4);         //结果: 我希望这样输出日期2016-8-8 8:10:27   2个M和d只是多了前置的0 起到完整写法和简写的区别
                                            //例如2016-08-08  其他字母都是这样hh:mm:ss 就是08:10:27



    //求当天是当年中的第几天
        SimpleDateFormat sdf1 = new SimpleDateFormat("今天是一年中的第D天");
        String str5 = sdf1.format(new Date());
        System.out.println(str5);       //结果 : 今天是一年中的第221天  可以看到这个类解析日期更加灵活,怎么配置他就怎么解析

        System.out.println("=============================================================================");



    //将字符串还原成Date对象
        String str6 = "北京时间7月20日15点30分";
        SimpleDateFormat sdf2 = new SimpleDateFormat("北京时间M月d日H点mm分");
        Date d = sdf2.parse(str6);            //构造器中参数给的解析模式要求和给定字符序列相同,只是把要解析的地方用字母写出来
        System.out.println(d);               //结果:Mon Jul 20 15:30:00 CST 1970    

        String str7 = "7-20";              //7月20
        SimpleDateFormat sdf3 = new SimpleDateFormat("MM-dd");   //或M-d  MM-d都行
        Date d2 = sdf3.parse(str7);
        System.out.println(d2);
    } 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值