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

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

DateFormat 类

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

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

  1. 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 类格式化曰期/时间的示例如下:

  1. //获取不同格式化风格和中国环境的日期
  2. DateFormat df1=DateFormat.getDateInstance(DateFormat.SHORT,Locale.CHINA);
  3. DateFormat df2=DateFormat.getDateInstance(DateFormat.FULL,Locale.CHINA);
  4. DateFormat df3=DateFormat.getDateInstance(DateFormat.MEDIUM,Locale.CHINA);
  5. DateFormat df4=DateFormat.getDateInstance(DateFormat.LONG,Locale.CHINA);
  6. //获取不同格式化风格和中国环境的时间
  7. DateFormat df5=DateFormat.getTimeInstance(DateFormat.SHORT,Locale.CHINA);
  8. DateFormat df6=DateFormat.getTimeInstance(DateFormat.FULL,Locale.CHINA);
  9. DateFormat df7=DateFormat.getTimeInstance(DateFormat.MEDIUM,Locale.CHINA);
  10. DateFormat df8=DateFormat.getTimeInstance(DateFormat.LONG,Locale.CHINA);
  11. //将不同格式化风格的日期格式化为日期字符串
  12. String date1=df1.format(new Date());
  13. String date2=df2.format(new Date());
  14. String date3=df3.format(new Date());
  15. String date4=df4.format(new Date());
  16. //将不同格式化风格的时间格式化为时间字符串
  17. String time1=df5.format(new Date());
  18. String time2=df6.format(new Date());
  19. String time3=df7.format(new Date());
  20. String time4=df8.format(new Date());
  21. //输出日期
  22. System.out.println("SHORT:"+date1+" "+time1);
  23. System.out.println("FULL:"+date2+" "+time2);
  24. System.out.println("MEDIUM:"+date3+" "+time3);
  25. System.out.println("LONG:"+date4+" "+time4);

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

SHORT:18-10-15 上午9:30
FULL:2018年10月15日 星期一 上午09时30分43秒 CST
MEDIUM:2018-10-15 9:30:43
LONG: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 秒”,具体的实现代码如下:

  1. import java.text.SimpleDateFormat;
  2. import java.util.Date;
  3. public class Test13
  4. {
  5. public static void main(String[] args)
  6. {
  7. Date now=new Date(); //创建一个Date对象,获取当前时间
  8. //指定格式化格式
  9. SimpleDateFormat f=new SimpleDateFormat("今天是 "+"yyyy 年 MM 月 dd 日 E HH 点 mm 分 ss 秒");
  10. System.out.pnntln(f.format(now)); //将当前时间袼式化为指定的格式
  11. }
  12. }

该程序的运行结果如下:

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

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

  1. 6、日期格式化(DateFormat类和SimpleDateFormat类)

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

  2. Java的知识点22——时间处理相关类、Date时间类(java.util.Date)、DateFormat类和SimpleDateFormat类、Calendar日历类

    时间处理相关类 用long类型的变量来表示时间,获得现在时刻的"时刻数值":long now = System.currentTimeMillis(); Date时间类(java. ...

  3. JAVA日期格式化类

    JAVA日期格式化类 1.日期格式化类 java.text.SimpleDateFormat简单日期格式化 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J3dmn0m ...

  4. Java计算时间差_传统的SimpleDateFormat类

    Java计算时间差_传统的SimpleDateFormat类 SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd ...

  5. 正则表达式、常用类(Pattern类、Matcher类、Math类、System类、Random类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类)

    JAVA学习第十六天-正则表达式.常用类(Pattern类.Matcher类.Math类.System类.Random类.BigDecimal类.Date类.SimpleDateFormat类.Cal ...

  6. java日期格式精确到分_详解Java日期格式化及其使用例子

    Java日期格式化及其使用例子 1 SimpleDateFormat担当重任,怎样格式化都行 import java.util.Date; import java.text.SimpleDateFor ...

  7. java 日期格式化-- SimpleDateFormat 的使用。字符串转日期,日期转字符串

    日期和时间格式由 日期和时间模式字符串 指定.在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素.文本可以使用单引 ...

  8. java 日期格式化 英文_Java中使用SimpleDateFormat输出英文日期(原创)

    Java中使用SimpleDateFormat输出英文日期(原创) 由萱萱 发表于2013-12-14 如果你想输出英文日期,形如: September 29, 2013 可以借助java.text. ...

  9. java日期格式化yyyy-mm-dd

    在 Java 中,你可以使用 SimpleDateFormat 类来格式化日期.以 "yyyy-MM-dd" 为例,你可以这样写: SimpleDateFormat dateFor ...

最新文章

  1. 3D相机(1):1、了解
  2. 织梦html仅动态,dede织梦系统后台发布文章时设置为默认动态浏览的方法
  3. 我的世界服务器玩家在线时间,将公布上线时间?我的世界中国版网易520前瞻
  4. java 封闭类型_java – 如何获取封闭类?
  5. 时间序列数据的特征提取
  6. 百度实习1,2,3面-教育知心搜索前端项目组
  7. C语言常用字符ASCII代码表,C语言常用转义字符、ASCII、优先级对照表
  8. 【论文泛读】Don‘t Stop Pretraining: Adapt Language Models to Domains and Tasks
  9. 微信公众平台Js API实现微信分享
  10. 学习在Unity中制作基础的节点编辑器
  11. 逃避追债?贾跃亭把法拉第未来股权转给了外甥,但他还有5套豪宅! | 焦点
  12. 投资,什么是真正的风险?
  13. (转)证券公司私募(PB)整体服务
  14. Windows Azure为锤子科技Smartisan T1手机提供“工匠”级云服务
  15. 新手必知的用户留存率知识
  16. AWS 中文入门开发教学 35- MySQL@RDS - 建立MySQL数据库服务
  17. java list 子集_Java——List方法,获取子集
  18. Linux LCD 驱动
  19. 中国鼠标行业销售动态及营销形势分析报告(新版)2022-2027年
  20. 行业分析-全球与中国蜂蜜苹果醋市场现状及未来发展趋势

热门文章

  1. 基于ssm商城系统源码springboot商城系统源码
  2. Android 播放mp3 tag乱码分析之jni 篇
  3. Xtrabackup备份
  4. SSD硬盘的接口区别详解图解 SATA、mSATA、PCI-E、M.2(NVMe协议) 、U.2、Type-c、USB、Macbook接口
  5. 计算机声音音乐小星星,生活的声音,敲出一首小星星
  6. 情感分析(Sentiment Analysis)的难题
  7. 宝塔面板配置PHP环境
  8. python删除列表元素的所有方法_python 列表删除所有指定元素的方法
  9. 基于自注意力机制与无锚点的仔猪姿态识别(农业工程学报)
  10. java 半个汉字,Java截取字符串军令状汉字不被截取半个