格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式。例如将日期“Fri May 18 15:46:24 CST2016” 格式转换为 “2016-5-18 15:46:24 星期五”的格式。

在 Java 中,可以使用 DateFormat 类和 SimpleDateFormat 类来格式化日期,下面详细介绍这两个格式化日期类的使用。

DateFormat 类

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期→文本)、解析(文本→日期)和标准化日期。

在创建 DateFormat 对象时不能使用 new 关键字,而应该使用 DateFormat 类中的静态方法 getDateInstance(),示例代码如下:

DateFormat df = DateFormat.getDatelnstance();

在创建了一个 DateFormat 对象后,可以调用该对象中的方法来对日期/时间进行格式化。DateFormat 类中常用方法如表 1 所示。

表 1 DateFormat类的常用方法

方法描述

String format(Date date)

将 Date 格式化日期/时间字符串

Calendar getCalendar()

获取与此日期/时间格式相关联的日历

static DateFormat getDateInstance()

获取具有默认格式化风格和默认语言环境的日期格式

static DateFormat getDateInstance(int style)

获取具有指定格式化风格和默认语言环境的日期格式

static DateFormat getDateInstance(int style,

Locale locale)

获取具有指定格式化风格和指定语言环境的日期格式

static DateFormat getDateTimeInstance()

获取具有默认格式化风格和默认语言环境的日期/时间

格式

static DateFormat getDateTimeInstance(int

dateStyle,int timeStyle)

获取具有指定日期/时间格式化风格和默认语言环境的

日期/时间格式

static DateFormat getDateTimeInstance(int

dateStyle,int timeStyle,Locale locale)

获取具有指定日期/时间格式化风格和指定语言环境的

日期/时间格式

static DateFormat getTimeInstance()

获取具有默认格式化风格和默认语言环境的时间格式

static DateFormat getTimeInstance(int style)

获取具有指定格式化风格和默认语言环境的时间格式

static DateFormat getTimeInstance(int style,

Locale locale)

获取具有指定格式化风格和指定语言环境的时间格式

void setCalendar(Calendar newCalendar)

为此格式设置日历

Date parse(String source)

将给定的字符串解析成日期/时间

格式化样式主要通过 DateFormat 常量设置。将不同的常量传入到表 1 所示的方法中,以控制结果的长度。DateFormat 类的常量如下。

SHORT:完全为数字,如 12.5.10 或 5:30pm。

MEDIUM:较长,如 May 10,2016。

LONG:更长,如 May 12,2016 或 11:15:32am。

FULL:是完全指定,如 Tuesday、May 10、2012 AD 或 11:l5:42am CST。

使用 DateFormat 类格式化曰期/时间的示例如下:

//获取不同格式化风格和中国环境的日期

DateFormat df1 =DateFormat.getDateInstance(DateFormat.SHORT, Locale.CHINA);

DateFormat df2=DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA);

DateFormat df3=DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.CHINA);

DateFormat df4=DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);//获取不同格式化风格和中国环境的时间

DateFormat df5 =DateFormat.getTimeInstance(DateFormat.SHORT, Locale.CHINA);

DateFormat df6=DateFormat.getTimeInstance(DateFormat.FULL, Locale.CHINA);

DateFormat df7=DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.CHINA);

DateFormat df8=DateFormat.getTimeInstance(DateFormat.LONG, Locale.CHINA);//将不同格式化风格的日期格式化为日期字符串

String date1 = df1.format(newDate());

String date2= df2.format(newDate());

String date3= df3.format(newDate());

String date4= df4.format(newDate());//将不同格式化风格的时间格式化为时间字符串

String time1 = df5.format(newDate());

String time2= df6.format(newDate());

String time3= df7.format(newDate());

String time4= df8.format(newDate());//输出日期

System.out.println("SHORT:" + date1 + " " +time1);

System.out.println("FULL:" + date2 + " " +time2);

System.out.println("MEDIUM:" + date3 + " " +time3);

System.out.println("LONG:" + date4 + " " + time4);

运行该段代码,输出的结果如下:

SHORT:18-10-15 上午9:30FULL:2018年10月15日 星期一 上午09时30分43秒 CST

MEDIUM:2018-10-15 9:30:43LONG:2018年10月15日 上午09时30分43秒

该示例主要介绍了 DateFormat 类中方法与常量的结合使用,通过使用 DateFomat 类可以对日期进行不同风格的格式化。

SimpleDateFormat 类

如果使用 DateFormat 类格式化日期/时间并不能满足要求,那么就需要使用 DateFormat 类的子类——SimpleDateFormat。

SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类,它允许进行格式化(日期→文本)、解析(文本→日期)和规范化。SimpleDateFormat 使得可以选择任何用户定义的日期/时间格式的模式。

SimpleDateFormat 类主要有如下 3 种构造方法。

SimpleDateFormat():用默认的格式和默认的语言环境构造 SimpleDateFormat。

SimpleDateFormat(String pattern):用指定的格式和默认的语言环境构造 SimpleDateF ormat。

SimpleDateFormat(String pattern,Locale locale):用指定的格式和指定的语言环境构造 SimpleDateF ormat。

SimpleDateFormat 自定义格式中常用的字母及含义如表 2 所示。

表 2 日期/时间格式中的字母及其含义与示例

字母含义示例

y

年份。一般用 yy 表示两位年份,yyyy 表示 4 位年份

使用 yy 表示的年扮,如 11;

使用 yyyy 表示的年份,如 2011

M

月份。一般用 MM 表示月份,如果使用 MMM,则会

根据语言环境显示不同语言的月份

使用 MM 表示的月份,如 05;

使用 MMM 表示月份,在 Locale.CHINA

语言环境下,如“十月”;在 Locale.US

语言环境下,如 Oct

d

月份中的天数。一般用 dd 表示天数

使用 dd 表示的天数,如 10

D

年份中的天数。表示当天是当年的第几天, 用 D 表示

使用 D 表示的年份中的天数,如 295

E

星期几。用 E 表示,会根据语言环境的不同, 显示不

同语言的星期几

使用 E 表示星期几,在 Locale.CHINA 语

言环境下,如“星期四”;在 Locale.US 语

言环境下,如 Thu

H

一天中的小时数(0~23)。一般用 HH 表示小时数

使用 HH 表示的小时数,如 18

h

一天中的小时数(1~12)。一般使用 hh 表示小时数

使用 hh 表示的小时数,如 10 (注意 10 有

可能是 10 点,也可能是 22 点)

m

分钟数。一般使用 mm 表示分钟数

使用 mm 表示的分钟数,如 29

s

秒数。一般使用 ss 表示秒数

使用 ss 表示的秒数,如 38

S

毫秒数。一般使用 SSS 表示毫秒数

使用 SSS 表示的毫秒数,如 156

例 1

编写 Java 程序,使用 SimpleDateFormat 类格式化当前日期并打印,日期格式为“xxxx 年 xx 月 xx 日星期 xxx 点 xx 分 xx 秒”,具体的实现代码如下:

importjava.text.SimpleDateFormat;importjava.util.Date;public classTest13 {public static voidmain(String[] args) {

Date now= new Date(); //创建一个Date对象,获取当前时间//指定格式化格式

SimpleDateFormat f = new SimpleDateFormat("今天是 " + "yyyy 年 MM 月 dd 日 E HH 点 mm 分 ss 秒");

System.out.println(f.format(now));//将当前时间袼式化为指定的格式

}

}

该程序的运行结果如下:

今天是 2018 年 10 月 15 日 星期一 09 点 26 分 23 秒

java日期格式化 类_Java日期格式化(DateFormat类和SimpleDateFormat类)相关推荐

  1. java格式化日期时分秒_Java 日期、时间类,日期、时间的格式化

    Java提供了Date.Calendar两个类用于处理日期.时间. 但Date的大部分构造器.方法已经过时,不在推荐使用,Calendar类又过于复杂,所以Java8推出了一套新的时间日期库. 1.D ...

  2. java 格式化解析_java日期格式化、解析

    今天移植别人的通用工具类,涉及到了日期的格式化.解析,学习结果记录如下. 日期的格式化器普用的是SimpleDateFormat,它继承了了DateFormat.SimpleDateFormat为用户 ...

  3. java 日期格式常量_Java 日期格式类

    Java格式 - Java日期格式类 Java 8有新的Date-Time API来处理日期和时间. 我们应该使用新的Java 8 Date-Time API来格式化和解析日期时间值. 如果我们正在编 ...

  4. java时间的正则表达式_java日期相关的类正则表达式

    常用的API Date.Math.DateFormat.Calendar.正则表达式 Data类 public class DateDeom { public static void main(Str ...

  5. java 包结构 枚举类_Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类...

    因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...

  6. java 日期的工具类_java 日期时间工具类

    package org.apache.pwd.util; import java.text.SimpleDateFormat; import java.util.Calendar; import ja ...

  7. java 只有日期的类_JAVA日期和时间类彻底解决(1)[转]

    What's your time zone? JAVA日期和时间类彻底解决(1)Page 1 of 3 你是否在苦苦挣扎在JAVA语言中的日期和时间中?当你在计算机上显示日期和时间时,, 是否要快一个 ...

  8. java时间日期工具类_java日期处理工具类

    java日期处理工具类 import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleD ...

  9. 在java中原始时间_Java 日期时间

    Java 日期时间 java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二 ...

  10. java dateformat类_java基础之DateFormat类

    DateFormat DateFormat类概述 DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间. 是抽象类,所以使用其子类SimpleDateFor ...

最新文章

  1. 模糊选择器 js_5个很棒的 React.js 库,值得你亲手试试!
  2. python h5游戏_从零开始制作H5人脸融合小游戏
  3. 涉足计算机视觉领域要知道的
  4. 五年级计算机学情分析,2015—2016学年小学五年级信息技术上册教学计划
  5. 自适应滤波器在matlab仿真的程序_电气信息类专业课程之matlab系统仿真 第五章 BPSK通信系统(3)...
  6. 计算机网络class2(标准化工作及相关组织)
  7. MATLAB R2021b v9.11.0.1769968中文版for Mac
  8. 大厂首选,为什么 SRE 比传统运维更抢手?
  9. 算法学习之路|方格分割
  10. 在排序数组中,找出给定数字的出现次数
  11. 2022年MySQL8 OCP最新题库整理,传授有缘人
  12. 请教问题:ckeditor脚本错误“Error:例外被抛出且未被接住”[已解决]
  13. 故宫景点功课10:后三宫区(中)
  14. Java -- Ajax异步访问数据库内容
  15. 95 费解的开关(递推)
  16. php guzzlehttp,PHP HTTP客户端-Guzzle原理解析
  17. 2023 最新计算机视觉学习路线(入门篇)
  18. 【数据知多少】一文学懂通过Tushare、AKshare、baostock、Ashare、Pytdx获取股票行情数据(含代码)
  19. PopupWindow
  20. [UE5 C++] 免费安装JetBrains Mono字体至IDE

热门文章

  1. 使用粒子群PSO算法实现MPPT-M语言仿真
  2. Yolov5+Resnet+Flask实现唇语识别系统
  3. 数据挖掘技术基本任务
  4. 麦克风阵列技术 一 (名词解释 背景介绍 麦克风及音频信号 麦克风阵列简介)
  5. 虚拟机VMware插入U盘操作系统崩溃死机问题及解决方法
  6. html5新标签转换插件,GOOGLE推出SWIFFY插件 一键转换SWF到HTML5
  7. DynamipsGUI支持的全系列Cisco IOS下载
  8. 两台服务器安装redis集群_两台服务器六节点redis集群环境搭建
  9. java塞班播放器_coreplayer移动播放器下载塞班版s60v5 v1.42_手机通用播放器
  10. 2008年IT日历 02