zoukankan      html  css  js  c++  java
  • Java SimpleDateFormat处理日期与字符串的转换

    1. 为什么要使用SimpleDateFormat?

    在Java中,如果我们想获取当前时间,一般会使用Date类的无参构造函数,如下所示,我们获取到当前时间并输出:

    import java.util.Date;
    
    public class SimpleDateFormatDemo {
        public static void main(String[] args) {
            Date currentTime = new Date();
            System.out.println(currentTime);
        }
    }
    

    输出结果:

    Mon Feb 18 10:24:30 CST 2019

    此时我们会发现, 输出的格式并不是我们预期的格式,一般情况下,我们希望的格式都是类似于2019-02-18,2019/02/18,2019-02-18 10:24:30这样的,此时我们就需要用到java.text.SimpleDateFormat来自定义格式。

    2. 使用format()方法将Date转换为String

    使用format()方法,我们可以将日期类型转换为自己自定义的字符串格式,如2019-02-18,2019/02/18,2019-02-18 10:24:30等,自定义格式如下表所示:

    格式 释义 举例
    yyyy 2019
    MM 02
    dd 18
    HH 小时(24小时制) 13,下午一点
    mm 分钟 53
    ss 42
    SSS 毫秒 629
    package com.zwwhnly.springbootaction.date;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class SimpleDateFormatDemo {
        public static void main(String[] args) {
            Date currentTime = new Date();
            System.out.println(currentTime);
    
            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
            SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat simpleDateFormat3 = new SimpleDateFormat("yyyy/MM/dd");
    
            System.out.println(simpleDateFormat1.format(currentTime));
            System.out.println(simpleDateFormat2.format(currentTime));
            System.out.println(simpleDateFormat3.format(currentTime));
        }
    }
    

    输出结果:

    Mon Feb 18 13:53:50 CST 2019

    2019-02-18 13:53:50.629

    2019-02-18

    2019/02/18

    3. 使用parse()方法将String转换为Date

    在实际开发过程中,我们有时需要将String转换为Date类型,以进行后续操作,此时可以使用parse()方法。

    但需要注意:如果字符串与指定的格式不匹配,会报java.text.ParseException异常

    package com.zwwhnly.springbootaction.date;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class SimpleDateFormatDemo {
        public static void main(String[] args) {
    
            try {
                SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    
                String strDate1 = "2019-02-18 13:58";
                String strDate2 = "2019-02-18";
    
                Date date1 = simpleDateFormat1.parse(strDate1);
                System.out.println(date1);
                Date date2 = simpleDateFormat1.parse(strDate2);
                System.out.println(date2);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
    }
    

    运行结果如下图所示:

    由此我们可以看到,strDate1格式匹配能正常转换为Date类型,而strDate2由于格式不匹配,

    抛出java.text.ParseException

    4. 参考

    Java学习--使用 Date 和 SimpleDateFormat 类表示时间

    Java SimpleDateFormat进行日期格式化

  • 相关阅读:
    day30---内置函数
    day30---绑定方法与非绑定方法
    元类以及属性查找
    python 内置方法/魔法方法
    python 面向对象高级-反射机制
    centos7下jenkins升级
    屏蔽百度右侧热搜
    centos7部署汉化版gitlab
    CentOS 7 安装 Jenkins
    centos7安装与配置ansible
  • 原文地址:https://www.cnblogs.com/zwwhnly/p/10395679.html
Copyright © 2011-2022 走看看