- 前面介绍了一个日期类 java.util.Date,其返回值不易懂,并且返回日期的格式单一。
- 例如:java.util.Date d = new java.util.Date(); d.toString()返回的当前时间日期的格式为:Sat Feb 16 16:35:31 GMT+08:00 2019 格式单一且是英文不易懂
SimpleDateFormat日期的自定义格式转换类
首先需要了解一些日期的代表符号:
yyyy 四位年
yy 两位年
MM 月份 始终两位
M 月份
dd 始终两位日期
d 日期
HH 24小时制 始终两位
H 24小时制
hh 12小时制 始终两位
h 12小时制
mm 分钟 始终两位
ss 秒 始终两位
1. 将java.util.Date类格式化
1.1 使用SimpleDateFormat空参构造器对Date的对象进行默认格式的格式化
- 将Date类的对象转化成字符串来显示日期,同时也更改了date.toString()输出的日期格式
- SimpleDateFormat.format(Date)方法:参数是Date的对象,返回一个String
-
// 1. Date.toString()的方式输出日期 Date date = new Date(); System.out.println(date.toString()); //Tue Dec 15 13:05:24 CST 2020 // 2.将Date类的对象格式化 SimpleDateFormat sdf = new SimpleDateFormat(); System.out.println(sdf.format(date)); //20-12-15 下午1:08
1.2 使用SimpleDateFormat含参构造器对Date的对象进行特定格式的格式化
String pattern = "dd-MM-yy";//设定构造器中传入的格式
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date date = new Date();
String dateString = sdf.format(date);//返回一个特定格式的日期字符串
System.out.println(dateString); //15-12-20
2. 解析:格式化的逆过程:将字符串解析为Date的对象
要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现),不同的SimpleDateFormat构造器对应的字符串格式不同
2.1. 采用SimpleDateFormat空参构造器
SimpleDateFormat sdf = new SimpleDateFormat();
String str = "19-12-18 上午11:43";
Date date1 = null;
try {
date1 = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date1);
// Wed Dec 18 11:43:00 CST 2019
- SimpleDateFormat空参构造器对应的格式为:yyyy-MM-dd HH:mm:ss
- 利用SimpleDateFormat.parse(str)方法,把默认格式的日期字符串赋值到str中,sdf.parse(str)返回一个Date 类的对象
2.2. 采用特定格式的SimpleDateFormat构造器
String pattern = "dd-MM-yy";//设定构造器中传入的格式
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String str = "15-12-20";//需要格式化的日期字符串
Date date = null;
try {
date = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date); //Tue Dec 15 00:00:00 CST 2020