Java语言学习总结 扩展篇 DateFormat类
DateFormat类
java.text .DateFormat 是 日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换:也就是可以在Date对象与String对象之间进行来回转换。
●格式化:按照指定的格式,从Date对象转换为String对象。
●解析:按照指定的格式.从String对象转换为Date对象。
包的关系为:
java.lang.Object ->java.text.Format ->java.text.DateFormat ->java.text.SimpleDateFormat
因为DateFormat是抽象类,不能直接调用,需要通过调用直接子类来调用方法,直接子类为:SimpleDateFormat
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
日期和时间模式:
| 字母 | 日期或时间元素 | 表示 | 示例 |
|---|---|---|---|
G |
Era 标志符 | Text | AD |
y |
年 | Year | 1996; 96 |
M |
年中的月份 | Month | July; Jul; 07 |
w |
年中的周数 | Number | 27 |
W |
月份中的周数 | Number | 2 |
D |
年中的天数 | Number | 189 |
d |
月份中的天数 | Number | 10 |
F |
月份中的星期 | Number | 2 |
E |
星期中的天数 | Text | Tuesday; Tue |
a |
Am/pm 标记 | Text | PM |
H |
一天中的小时数(0-23) | Number | 0 |
k |
一天中的小时数(1-24) | Number | 24 |
K |
am/pm 中的小时数(0-11) | Number | 0 |
h |
am/pm 中的小时数(1-12) | Number | 12 |
m |
小时中的分钟数 | Number | 30 |
s |
分钟中的秒数 | Number | 55 |
S |
毫秒数 | Number | 978 |
z |
时区 | General time zone | Pacific Standard Time; PST; GMT-08:00 |
Z |
时区 | RFC 822 time zone | -0800 |
示例:
| 日期和时间模式 | 结果 |
|---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z" |
2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ''yy" |
Wed, Jul 4, '01 |
"h:mm a" |
12:08 PM |
"hh 'o''clock' a, zzzz" |
12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" |
0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" |
02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" |
Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" |
010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" |
2001-07-04T12:08:56.235-0700 |
构造方法:
由于DateFormat为抽象类,不能直接使用.所以需要常用的子类java. text. SimpleDateFornat.这个类需要一个模式(格式)来指定格式化或解析的标准。
| 构造方法摘要 | |
|---|---|
SimpleDateFormat() 用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 |
|
SimpleDateFormat(String pattern)用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 |
|
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)用给定的模式和日期符号构造 SimpleDateFormat。 |
|
SimpleDateFormat(String pattern, Locale locale)用给定的模式和给定语言环境的默认日期格式符号构造 SimpleDateFormat。 |
|
SimpleDateFormat,参数pattern是一个字符串 代表日期时间的自定义格式。
格式化:
用SimpleDateFormat 的构造方法中传递指定格式化模式,用SimpleDateFormat中的方法format把Date日期格式化为符号模式的字符串。
示例代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//用构造方法指定模式
String d1 = sdf.format(date);
//调用format方法把Date日期转化成字符串
System.out.println(date);//传人Date日期
System.out.println(d1);//输出
System.out.println("================");
SimpleDateFormat sdf2 = new SimpleDateFormat("MM月dd日yyyy年 HH时mm分ss秒");
String d2 = sdf2.format(date);
System.out.println(date);
System.out.println(d2);
System.out.println("================");
SimpleDateFormat sdf3 = new SimpleDateFormat("HH时mm分ss秒 yyyy年MM月dd日 ");
String d3 = sdf3.format(date);
System.out.println(date);
System.out.println(d3);
输出结果如下:

解析:
使用pateFormat类中的方法parse,把文本解析为日期
使用步骤:
1.创建Stmpl eDateFormat对象,构造方法中传递指定的模式
2.调用stepleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期
注意:
public Date parse(String source) throws ParseException
parse方法声明了一个异常叫ParseException
如果字符串和构造方法的模式不一样.那么程序就会的出此异常
调用一个抛出了异常的方法,就必须的处理这个异常,要么throws继续抛出这个异常,要么try catch自己处理
示例代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class DateParse { public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date = sdf.parse("2020年01月27日 14时56分09秒");
System.out.println(date);
} }
parse()括号里输入的日期格式必须与SimpleDateFormat里指定的日期格式相同,否则报错。
Java语言学习总结 扩展篇 DateFormat类的更多相关文章
- Java语言学习总结 扩展篇 包装类的概念及其使用
包装类 包装类的概述 Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本 ...
- Java工程师学习指南 完结篇
Java工程师学习指南 完结篇 先声明一点,文章里面不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦. 因为笔者还只是一名在校 ...
- Java工程师学习指南 中级篇
Java工程师学习指南 中级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我写的文章都是站 ...
- Java工程师学习指南 初级篇
Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- Java工程师学习指南 入门篇
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- Java语言学习day02--6月29日
Java语言学习day02###01常用的DOS命令 * A: 常用的DOS命令 * a: 打开Dos控制台 * win+r--cmd--回车 * b: 常用dos命令 * cd.. : 退回到上一级 ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- Java语言学习day01--6月28日
Java语言学习day01一:Java概述 1.Java语言发展史 任职于太阳微系统的 詹姆斯·高斯林 等人于1990年代初开发Java语言的雏形,最初被命名为 Oak ,目标设置在 家用电器等小型系 ...
- Java基础知识强化91:DateFormat类之DateFormat实现日期和字符串的相互转换
1. DateFormat类概述: DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间. 是抽象类,所以使用其子类SimpleDateFormat 2. ...
随机推荐
- Hibernate一对多(多对一)外键设置汇总
我打算在角色表(role)中添加一个帐号表(account)的外键(accountId),步骤如下: 1.首先在角色表(role)中添加列. 添加语句:alter table role add(acc ...
- Unity ShaderLab 学习笔记(一)
因为项目的问题,有个效果在iOS上面无法实现出来- 因为shader用的HardSurface的,在android上面跑起来没有问题- 以为在iOS上也不会有问题,但是悲剧啊,技能效果一片漆黑- 而且 ...
- nosql概叙
关系型数据库管理系统:按照预先设置的组织架构,将数据存储在物理介质上 数据之间可以做关联操作
- Django(十七):静态文件、中间件
一.静态文件 参考:https://www.cnblogs.com/jiajiaba/p/10584329.html 参考:https://docs.djangoproject.com/zh-hans ...
- docker-compose 快速部署Prometheus,监控docker 容器, 宿主机,ceph -- cluster集群
话不多说上菜: 现在环境是这样: ceph 4台: 192.168.100.21 ceph-node1 192.168.100.22 ceph-node2 192.168.100.23 ceph ...
- Centos7 rsync+inotify两台服务器同步文件(单向)
注:本篇介绍的是单向同步,即A文件同步到B,但B的文件不同步到A,双向同步的在下一篇文章中. rsync与inotify不再赘述,直接进入实战. 0.背景 两台服务器IP地址分别为: 源服务器:192 ...
- 在 Rolling Update 中使用 Health Check【转】
上一节讨论了 Health Check 在 Scale Up 中的应用,Health Check 另一个重要的应用场景是 Rolling Update.试想一下下面的情况: 现有一个正常运行的多副本应 ...
- 在GNOME开发人员的努力下,Pango 1.44即将问世
早在5月份,Red Hat的Matthias Clasen共同制定了计划,在近年来相当陈旧的情况下,对Pango布局引擎库进行了一些改进. 这项工作将随着Pango1.44版本的发布而实现,看起来它很 ...
- 024、MySQL字符串替换函数,文本替换函数
#文本替换 ,,'); #520ABCDEFG ,,'); #520BCDEFG ,,'); #520CDEFG ,,'); #A520BCDEFG ,,'); #A520CDEFG ,,'); #A ...
- GDI4
前几篇我已经向大家介绍了如何使用GDI+来绘图,并做了一个截图的实例,这篇我向大家介绍下如何来做一个类似windows画图的工具.个人认为如果想做一个功能强大的绘图工具,那么单纯掌握GDI还远远不够, ...