欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java SimpleDateFormat处理日期与字符串的转换

程序员文章站 2022-03-26 15:03:01
1.为什么要使用SimpleDateFormat? 在Java中,如果我们想获取当前时间,一般会使用Date类的无参构造函数,如下所示,我们获取到当前时间并输出: 此时我们会发现, 输出的格式并不是我们预期的格式,一般情况下,我们希望的格式都是类似于2019 02 18,2019 02 18 10: ......

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 10:24:30,2019/02/18这样的,此时我们就需要用到java.text.simpledateformat来自定义格式。

2.使用format()方法将日期转换为字符串

使用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.springbootdemo;

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);    // mon feb 18 13:53:50 cst 2019

        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));  // 输出2019-02-18 13:53:50.629
        system.out.println(simpledateformat2.format(currenttime));  // 输出2019-02-18
        system.out.println(simpledateformat3.format(currenttime));  // 输出2019/02/18
    }
}

3.使用parse()方法将字符串转换为日期

在实际开发过程中,我们经常需要将字符串转换为日期类型,以进行后续操作,此时可以使用parse()

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

![snipaste_20190218_141555](e:\临时\20190218\snipaste_20190218_141555.png)package com.zwwhnly.springbootdemo;

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();
        }
    }
}

运行结果如下图所示:
Java SimpleDateFormat处理日期与字符串的转换
由此我们可以看到,strdate1格式匹配能正常转换为date类型,而strdate2由于格式不匹配,抛出java.text.parseexception,正是因为如此,以上的代码才必须包括在try,catch语句中,否则idea会提示错误,代码也编译不通过,如下图所示:
Java SimpleDateFormat处理日期与字符串的转换

4.参考链接

java学习--使用 date 和 simpledateformat 类表示时间
java simpledateformat进行日期格式化