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. window 7 安装Jmeter并配置https录制脚本

    安装与环境配置: http://blog.csdn.net/hhuangdanfeng/article/details/51564765 http://blog.csdn.net/u010573212 ...

  2. (转载)CSS3与页面布局学习总结(三)——BFC、定位、浮动、7种垂直居中方法

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

  3. 带着新人看java虚拟机07(多线程篇)

    这一篇说一下比较枯燥的东西,为什么说枯燥呢,因为我写这都感觉很无聊,无非就是几个阻塞线程的方法和唤醒线程的方法... 1.线程中断 首先我们说一说怎么使得一个正在运行中的线程进入阻塞状态,这也叫做线程 ...

  4. 学习攻略丨如何进阶为一名Web安全高手?

    学习Web安全的小伙伴很多,但是能成为Web安全高手却很少,很多人都是从入门到放弃,是真的太难还是学习方法不对? 对于基础薄弱的人来说,一般都是从XSS.SQL注入等简单的漏洞研究入门的.除了了解各种 ...

  5. [区块链\理解BTCD源码]GO语言实现一个区块链原型

    摘要 本文构建了一个使用工作量证明机制(POW)的类BTC的区块链.将区块链持久化到一个Bolt数据库中,然后会提供一个简单的命令行接口,用来完成一些与区块链的交互操作.这篇文章目的是希望帮助大家理解 ...

  6. 开始在web中使用JS Modules

    本文由云+社区发表 作者: 原文:<Using JavaScript modules on the web> https://developers.google.com/web/funda ...

  7. Spring学习(一):理解IoC容器

    序言 记得刚毕业那会儿,出来招工作被问到Spring的核心时,都觉得简单的一笔,直接说不就是IoC(控制反转)和DI(依赖注入)么,然后省略一万字对两个名词的解释.最近空来整理了一下Spring中Io ...

  8. asp.net mvc 三层加EF两表联查

    首先打开vs软件新建项目创建web中的mvc项目再右击解决方案创建类库项目分别创建DAL层和BLL层再把DAL层和BLL层的类重命名在mvc项目中的Models文件夹创建model类在DAL创建ADO ...

  9. Fiddler 接口测试(Composer)的使用方法及并发测试

    下载地址:https://www.telerik.com/download/fiddler 一.Composer简介 右侧Composer区域,是测试接口的界面: 相关说明: 1.请求方式:点开可以勾 ...

  10. linux高级编程

    系统调用 01.什么是系统调用? 02.Linux系统调用之I/O操作(文件操作) 03.文件描述符的复制:dup(), dup2() 多进程实现多任务 04.进程的介绍 05.Linux可执行文件结 ...