嗨客网搜索
Java开发环境搭建
Java方法
Java时间格式化

Java时间格式化教程

我们知道 Date 得到的数据对象打印出来的数据对于我们而言,可读性是比较差的。我们可以通过 DateFormat 或者 SimpleDateFormat 来格式化我们的 Date 对象。

Java DateFormat类

说明

DateFormat 是一个抽象类,它提供了一些静态方法来获取到本类的实例。

方法 描述
public staitc final DateFormat getDateInstance() 得到默认对象
public static final DateFormat getDateInstance(int style,Local aLocale) 根据local得到对象
public static final DateFormat getDateTimeInstance() 得到日期时间对象
public static final DateFormat getDateTimeInstance(int dateStyle,int timeStyle,Locale aLocale) 根据Locale 得到日期时间对象

案例

package com.haicoder.net.date; import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class DateTest { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)"); DateFormat df1 = DateFormat.getDateInstance(); DateFormat df2 = DateFormat.getDateTimeInstance(); System.out.println("DATE : " + df1.format(new Date())); System.out.println("DATETIME :" + df2.format(new Date())); DateFormat df3 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN")); DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN")); System.out.println("DATE : " + df3.format(new Date())); System.out.println("DATETIME : " + df4.format(new Date())); } }

运行结果如下

06 dateformat.png

这边我们显示的格式已经符合我们的阅读习惯了,这边是系统里面自带的格式,但是如果我们想要展示成自定义格式,该怎么办呢?我们可以使用 SimpleDateFormat 这个类。

Java SimpleDateFormat类

说明

SimpleDateFormat 是 DateFormat 的子类,我们可以通过这个类来自定义日期格式。要让日期按照指定的格式打印出来,我们需要将日期格式定义成一个模版。模版标记如下:

标记 描述
y 年,是 4 位数字,需要用 yyyy 表示
M 年中的月份,是两位数字,需要用 MM 表示
d 月中的天数,两个数字,用 dd 表示
H 一天中的小时数,两位数字,表示 24 小时制,使用 HH 表示
m 小时中的分钟数,两位数字,用 mm 表示
s 分钟里的秒数,两位数字,用 ss 表示
S 毫秒数,是三位数,用 SSS 表示

有模版,就需要有相应的方法使用这些模版,常用的方法有

方法名 描述
public SimpleDateFormat(String pattern) 通过一个指定的模版构造对象
public Date parse(String sourec) throws ParseException 将一个包含日期的字符串转换成日期类型
public final String format(Date date) 将一个 Date 类型按照指定格式转换为 String类型

案例

package com.haicoder.net.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)"); String strDate = "2020-05-20 13:14:20.200"; String pat1 = "yyyy-MM-dd HH:mm:ss.SSS"; String par2 = "yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒 SSS 毫秒"; SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat(pat1); SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat(par2); Date d = null; try { d = simpleDateFormat1.parse(strDate); //把字符串转Date } catch (ParseException e) { e.printStackTrace(); } System.out.println(simpleDateFormat2.format(d)); //把 Date 日期类型转String 类型 } }

运行结果如下

07 simpleDateFormat.png

Java时间格式化总结

有的时候,我们想让日期按照自己的定义模式显示,这个时候我们可以使用 DateFormat 和 SimpleDateFormat 来格式化时间对象。

DateFormat 它只能够打印该对象里面定义好的几个时间格式,SimpleDateFormat 可以按照我们自己定义的模版来获取日期格式,它可以将 String 类型的对象转日期对象,将日期格式的对象转 String 类型对象。

嗨客网顶部