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 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异常。
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处理日期与字符串的转换的更多相关文章
- java比较日期大小及日期与字符串的转换【SimpleDateFormat操作实例】
java比较日期大小及日期与字符串的转换[SimpleDateFormat操作实例] package com.ywx.test; import java.text.ParseException; im ...
- Java 日期与字符串的转换
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl ...
- Java时间戳与日期格式字符串的互转
上代码: import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /** * 时间戳转换成日 ...
- Flex 日期和字符串之间转换
字符串转为日期: var dateTime:Date= DateField.stringToDate(deTime, "YYYY-MM-DD");//"YYYY-MM-D ...
- Oracle中的日期和字符串互相转换
转载出处:http://blog.sina.com.cn/s/blog_44a005380100k6rv.html TO_DATE格式(以时间:2007-11-02 13:45:25为例) ...
- DateFormat抽象类实现日期与字符串的转换
[需求]日期是可以计算的,而日期字符串无法计算. 由于DateFormat是抽象类,我们一般都是用的它的子类SimpleDateFormat. [SimpleDateFormat构造方法] 1)Sim ...
- 转:Oracle中的日期和字符串互相转换
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显 ...
- Java之字节数组和字符串的转换问题
今天在使用字节流复制图片的时候发现一个问题,就是将字节数组转化为字符串的时候会出现长度不同的问题.这其实是个错误的操作. public static void main(String[] args) ...
- java中date日期格式的各种转换
示例 Date dt =new Date(); System.out.println(dt); //格式: Wed Jul 06 09:28:19 CST 2016 //格式:2016-7-6 Str ...
随机推荐
- TF.learn学习
官网地址:https://www.tensorflow.org/versions/r1.1/get_started/tflearn 1.代码例子 实现自定义的Estimator 使用DNNClassi ...
- 一步一步理解 python web 框架,才不会从入门到放弃 -- 简单登录页面
上一节,我们基本了解了 Django 的一些配置,这一节,我们将通过一个简单的登录页面,进一步学习 Django 的使用. 新建项目 首先,新建一个 Django 项目,记得别弄错了哦. settin ...
- 深度学习之循环神经网络(RNN)
循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络,适合用于处理视频.语音.文本等与时序相关的问题.在循环神经网络中,神经元不但可以接收其他神经元 ...
- 华为手机无法使用USB调试的解决方案
在Android开发中,一直在使用华为的荣耀8进行调试,但是突然某一次,发现USB调试无法使用了,且在其他的电脑上进行调试也不行. 后来经过查资料,总算解决了此问题,在这里进行一下解决方案的记录. 需 ...
- ASP.NET Core的实时库: SignalR -- 预备知识
大纲 本系列会分为2-3篇文章. 第一篇介绍SignalR的预备知识和原理 然后会介绍SignalR和如何在ASP.NET Core里使用SignalR. 本文的目录如下: 实时Web简述 Long ...
- 一文了解 Hadoop 运行机制
大数据技术栈在当下已经是比较成熟的了,Hadoop 作为大数据存储的基石,其重要程度不言而喻,作为一个想从 java 后端转向大数据开发的程序员来说,打好 Hadoop 基础,就相当于夯实建造房屋的地 ...
- NumPy 超详细教程(3):ndarray 的内部机理及高级迭代
系列文章地址 NumPy 最详细教程(1):NumPy 数组 NumPy 超详细教程(2):数据类型 NumPy 超详细教程(3):ndarray 的内部机理及高级迭代 ndarray 对象的内部机理 ...
- 使用PixiJS做一个小游戏
PixiJS PixiJS使用WebGL,是一个超快的HTML5 2D渲染引擎.作为一个Javascript的2D渲染器,Pixi.js的目标是提供一个快速的.轻量级而且是兼任所有设备的2D库. 官方 ...
- java_反射
反射:reflect 成员属性:Field 成员方法:Method 构造方法:Constructor 类:Class 引用,援引:invoke 新实例:newInstance Decla ...
- arcgis api 3.x for js 入门开发系列二十二地图模态层(附源码下载)
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...