Java日期格式化(DateFormat类和SimpleDateFormat类)
格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式。例如将日期“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 所示。
方法 | 描述 |
---|---|
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(new Date());
- String date2=df2.format(new Date());
- String date3=df3.format(new Date());
- String date4=df4.format(new Date());
- //将不同格式化风格的时间格式化为时间字符串
- String time1=df5.format(new Date());
- String time2=df6.format(new Date());
- String time3=df7.format(new Date());
- String time4=df8.format(new Date());
- //输出日期
- 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: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 所示。
字母 | 含义 | 示例 |
---|---|---|
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 秒”,具体的实现代码如下:
- import java.text.SimpleDateFormat;
- import java.util.Date;
- public class Test13
- {
- public static void main(String[] args)
- {
- Date now=new Date(); //创建一个Date对象,获取当前时间
- //指定格式化格式
- SimpleDateFormat f=new SimpleDateFormat("今天是 "+"yyyy 年 MM 月 dd 日 E HH 点 mm 分 ss 秒");
- System.out.pnntln(f.format(now)); //将当前时间袼式化为指定的格式
- }
- }
该程序的运行结果如下:
今天是 2018 年 10 月 15 日 星期一 09 点 26 分 23 秒
Java日期格式化(DateFormat类和SimpleDateFormat类)相关推荐
- 6、日期格式化(DateFormat类和SimpleDateFormat类)
格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式.例如将日期"Fri May 18 15:46:24 CST2016" 格式转换为 "2016-5-18 15 ...
- Java的知识点22——时间处理相关类、Date时间类(java.util.Date)、DateFormat类和SimpleDateFormat类、Calendar日历类
时间处理相关类 用long类型的变量来表示时间,获得现在时刻的"时刻数值":long now = System.currentTimeMillis(); Date时间类(java. ...
- JAVA日期格式化类
JAVA日期格式化类 1.日期格式化类 java.text.SimpleDateFormat简单日期格式化 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J3dmn0m ...
- Java计算时间差_传统的SimpleDateFormat类
Java计算时间差_传统的SimpleDateFormat类 SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd ...
- 正则表达式、常用类(Pattern类、Matcher类、Math类、System类、Random类、BigDecimal类、Date类、SimpleDateFormat类、Calendar类)
JAVA学习第十六天-正则表达式.常用类(Pattern类.Matcher类.Math类.System类.Random类.BigDecimal类.Date类.SimpleDateFormat类.Cal ...
- java日期格式精确到分_详解Java日期格式化及其使用例子
Java日期格式化及其使用例子 1 SimpleDateFormat担当重任,怎样格式化都行 import java.util.Date; import java.text.SimpleDateFor ...
- java 日期格式化-- SimpleDateFormat 的使用。字符串转日期,日期转字符串
日期和时间格式由 日期和时间模式字符串 指定.在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素.文本可以使用单引 ...
- java 日期格式化 英文_Java中使用SimpleDateFormat输出英文日期(原创)
Java中使用SimpleDateFormat输出英文日期(原创) 由萱萱 发表于2013-12-14 如果你想输出英文日期,形如: September 29, 2013 可以借助java.text. ...
- java日期格式化yyyy-mm-dd
在 Java 中,你可以使用 SimpleDateFormat 类来格式化日期.以 "yyyy-MM-dd" 为例,你可以这样写: SimpleDateFormat dateFor ...
最新文章
- 3D相机(1):1、了解
- 织梦html仅动态,dede织梦系统后台发布文章时设置为默认动态浏览的方法
- 我的世界服务器玩家在线时间,将公布上线时间?我的世界中国版网易520前瞻
- java 封闭类型_java – 如何获取封闭类?
- 时间序列数据的特征提取
- 百度实习1,2,3面-教育知心搜索前端项目组
- C语言常用字符ASCII代码表,C语言常用转义字符、ASCII、优先级对照表
- 【论文泛读】Don‘t Stop Pretraining: Adapt Language Models to Domains and Tasks
- 微信公众平台Js API实现微信分享
- 学习在Unity中制作基础的节点编辑器
- 逃避追债?贾跃亭把法拉第未来股权转给了外甥,但他还有5套豪宅! | 焦点
- 投资,什么是真正的风险?
- (转)证券公司私募(PB)整体服务
- Windows Azure为锤子科技Smartisan T1手机提供“工匠”级云服务
- 新手必知的用户留存率知识
- AWS 中文入门开发教学 35- MySQL@RDS - 建立MySQL数据库服务
- java list 子集_Java——List方法,获取子集
- Linux LCD 驱动
- 中国鼠标行业销售动态及营销形势分析报告(新版)2022-2027年
- 行业分析-全球与中国蜂蜜苹果醋市场现状及未来发展趋势
热门文章
- 基于ssm商城系统源码springboot商城系统源码
- Android 播放mp3 tag乱码分析之jni 篇
- Xtrabackup备份
- SSD硬盘的接口区别详解图解 SATA、mSATA、PCI-E、M.2(NVMe协议) 、U.2、Type-c、USB、Macbook接口
- 计算机声音音乐小星星,生活的声音,敲出一首小星星
- 情感分析(Sentiment Analysis)的难题
- 宝塔面板配置PHP环境
- python删除列表元素的所有方法_python 列表删除所有指定元素的方法
- 基于自注意力机制与无锚点的仔猪姿态识别(农业工程学报)
- java 半个汉字,Java截取字符串军令状汉字不被截取半个