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

运行结果如下图所示:



由此我们可以看到,strDate1格式匹配能正常转换为Date类型,而strDate2由于格式不匹配,抛出java.text.ParseException,正是因为如此,以上的代码才必须包括在try,catch语句中,否则IDEA会提示错误,代码也编译不通过,如下图所示:

4.参考链接

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

Java SimpleDateFormat进行日期格式化

Java SimpleDateFormat处理日期与字符串的转换的更多相关文章

  1. java比较日期大小及日期与字符串的转换【SimpleDateFormat操作实例】

    java比较日期大小及日期与字符串的转换[SimpleDateFormat操作实例] package com.ywx.test; import java.text.ParseException; im ...

  2. Java 日期与字符串的转换

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl ...

  3. Java时间戳与日期格式字符串的互转

    上代码: import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /** * 时间戳转换成日 ...

  4. Flex 日期和字符串之间转换

    字符串转为日期: var dateTime:Date= DateField.stringToDate(deTime, "YYYY-MM-DD");//"YYYY-MM-D ...

  5. Oracle中的日期和字符串互相转换

    转载出处:http://blog.sina.com.cn/s/blog_44a005380100k6rv.html TO_DATE格式(以时间:2007-11-02   13:45:25为例)    ...

  6. DateFormat抽象类实现日期与字符串的转换

    [需求]日期是可以计算的,而日期字符串无法计算. 由于DateFormat是抽象类,我们一般都是用的它的子类SimpleDateFormat. [SimpleDateFormat构造方法] 1)Sim ...

  7. 转:Oracle中的日期和字符串互相转换

    TO_DATE格式(以时间:2007-11-02   13:45:25为例)          Year:             yy two digits 两位年                显 ...

  8. Java之字节数组和字符串的转换问题

    今天在使用字节流复制图片的时候发现一个问题,就是将字节数组转化为字符串的时候会出现长度不同的问题.这其实是个错误的操作. public static void main(String[] args) ...

  9. java中date日期格式的各种转换

    示例 Date dt =new Date(); System.out.println(dt); //格式: Wed Jul 06 09:28:19 CST 2016 //格式:2016-7-6 Str ...

随机推荐

  1. TensorFlow TensorBoard使用

    摘要: 1.代码例子 2.主要功能内容: 1.代码例子 <TensorFlow实战>使用MLP处理Mnist数据集并TensorBoard上显示 2.主要功能 执行TensorBoard程 ...

  2. ActiveMQ详解

    Apache ActiveMQ介绍 使用MQ的场景 ActiveMQ的安装 收发消息的简单实现 ActiveMQ内部实现 queue和topic 消息持久化 kahadb原理 最关键的6个配置 Apa ...

  3. javascript模块化编程 从入门到实战

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...

  4. 将来会是Python、Java、Golang三足鼎立的局面吗?

    甲:听说最近java跌落神坛,python称霸武林了,你知道吗? 乙:不是吧,我前几天看python怎么还是第三? 丙:你们都在扯蛋,python在2018年就已经是最好的语言了! 乙:不可能吧? 甲 ...

  5. slice是什么时候决定要扩张?

    slice是什么时候决定要扩张? 网上说slice的文章已经很多了,大都已经把slice的内存扩张原理都说清楚了.但是是如何判断slice是否需要扩张这个点却没有说的很清楚.想当然的我会觉得这个app ...

  6. 原生js查询、添加、删除类

    1.添加类 为标签添加一个class的类 如:<div id="box" class="box">内容</div> document.g ...

  7. QQ登录界面布局

    简单的qq登录界面布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmln ...

  8. Android之Fragment详解

    文章大纲 一. 什么是Fragment二. Fragment生命周期三. Fragment简单实例四.Fragment实战五.项目源码下载六.参考文章   一. 什么是Fragment Fragmen ...

  9. Soot生成代码控制流图

    Soot可以对代码进行分析,提供了多种字节码分析和变换功能,通过它可以进行过程内和过程间的分析优化,以及程序流图的生成,还能通过图形化的方式输出. http://www.brics.dk/SootGu ...

  10. 多功能设备mfd驱动

    一.概述 mfd是Multifunction device的简称,即多功能设备,是许多有共性的设备的集合,mfd由核心层(core)以及其下的"子设备"组成.从下文将会看到,mfd ...