Java SimpleDateFormat进行日期格式化

简介: 本文目录1. 为啥要用SimpleDateFormat2. 日期格式化显示3. 将字符串转换为对应日期

1. 为啥要用SimpleDateFormat

众所周知,Java中的日期类是Date,然后日期默认的输出样式很奇怪哦,是这样子的:


package org.maoge.common;

import java.util.Date;

public class SimpleDateFormatDemo {

public static void main(String[] args) {

 //默认输出格式

 Date date=new Date();

 System.out.println(date);//Fri Oct 27 16:56:37 CST 2017

}

}


真的好像说,这是什么鬼啊,神经病啊,老板要是发现你在前端把日期显示成这样子,非要…觉得你很有个性不可。


OK,所以就很需要将日期以一种我们想要的格式显示出来。


另外,有时候我们需要指定一个日期,所以也需要将字符串类型转换为Date类型,我们往往会以为是这样子的:

image.png

首先我们就注意到了new Date()方法被划上了删除线,这个就表示该方法在定义的时候被@Deprecated注解注解过了,意思是该方法过期了不建议使用了可能有问题了,反正咱知道这个方法最好不用就是了。而且,确实也报错了,所以我们也需要一种将字符串转换为日期的方法。


SimpleDateFormat就是为这两种需要诞生滴,类库嘛,就是前人搭棚好乘凉,而且都是牛逼的前人。


2. 日期格式化显示

首先要记住一些标记:(注意大小写)


年yyyy

月MM

日dd

时HH

分mm

秒ss

毫秒SS


然后直接看例子:


package org.maoge.common;

import java.text.SimpleDateFormat;

import java.util.Date;

public class SimpleDateFormatDemo {

public static void main(String[] args) {

 //默认输出格式

 Date date=new Date();

 System.out.println(date);//Fri Oct 27 16:56:37 CST 2017

 //日期格式化显示,首先定义格式

 SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");//显示20171027格式

 SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");//显示2017-10-27格式

 SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//显示2017-10-27 10:00:00格式

 SimpleDateFormat sdf4=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");//显示2017年10月27日10时00分00秒格式

 //将格式应用于日期

 System.out.println(sdf1.format(date));//20171027

 System.out.println(sdf2.format(date));//2017-10-27

 System.out.println(sdf3.format(date));//2017-10-27 17:11:13

 System.out.println(sdf4.format(date));//2017年10月27日17时11分13秒

}

}


3. 将字符串转换为对应日期

注意,因为可能定义的格式和实际字符串提供的格式不符合,所以会抛出异常


package org.maoge.common;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class SimpleDateFormatDemo {

public static void main(String[] args) {

 //首先定义格式

 SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");

 SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

 //按格式进行转换

 String strDate1="20151010";//符合sdf1格式

 String strDate2="20171027 10:00:00";//不符合格式

 try {

  Date date1=sdf1.parse(strDate1);

  System.out.println(date1);//正常输出Sat Oct 10 00:00:00 CST 2015

  Date date2=sdf2.parse(strDate2);//报错java.text.ParseException: Unparseable date: "20171027 10:00:00"

  System.out.println(date2);

 } catch (ParseException e) {

  e.printStackTrace();

 }

}

}

相关文章
|
4天前
|
存储 安全 Java
java编程SimpleDateFormat详解
java编程SimpleDateFormat详解
|
21天前
|
安全 Java 测试技术
滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
【6月更文挑战第7天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
25 0
滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
|
1月前
|
人工智能 IDE Java
CodeFuse代码优化实战:Java日期格式化时如何正确表示年份?
Java日期格式化时这里的坑你知道吗?一起来看正确用法!使用 CodeFuse 代码优化功能,可以帮你完美避坑,快来试试吧~
44 0
|
1月前
|
Java
Java中SimpleDateFormat的具体用法
Java中SimpleDateFormat的具体用法
39 0
|
10月前
|
Java
Java 中SimpleDateFormat类的使用
Java 中SimpleDateFormat类的使用
61 0
|
10月前
|
安全 Java
Java中的SimpleDateFormat方法分析
Java中的SimpleDateFormat方法分析
|
10月前
|
存储 安全 Java
Java类库StrringBuffer类、Math、SimpleDateFormat、Random随机数、大数字处理类和UUID 无重复数据(附带面试题)
1.StrringBuffer类 CharConsequnse接口,2.Math数学计算,3.Date日期处理类与SimpleDateFormat、4.Random随机数、5.大数字处理类、6.UUID 无重复数据
82 0
|
10月前
|
Java
Java Date - SimpleDateFormat 的使用
Java Date - SimpleDateFormat 的使用
42 0
|
11月前
|
安全 Java BI
【JavaSE专栏43】Java常用类SimpleDateFormat解析,轻松解决日期格式化问题
【JavaSE专栏43】Java常用类SimpleDateFormat解析,轻松解决日期格式化问题
132 0
|
安全 Java API
Java Review - SimpleDateFormat线程不安全原因的源码分析及解决办法
Java Review - SimpleDateFormat线程不安全原因的源码分析及解决办法
156 0