SimpleDateFormat是一个用于格式化时间的类,可以获取各种我们需要的时间格式。
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
这个和正则表达式的感觉类似,在使用的时候,通过SimpleDateFormat的构造函数传入,即可获取到对应的字符串。
通常我们会有这样的需求,服务器传给我们一个日期字符串,但是格式不是我们需要的,当然我们可以使用字符串切割再拼接来获取到我们需要的格式,但是这样容易出错,而且麻烦。这时我们可以使用SimpleDateFormat来完成,代码如下。
private static void testSimpleDateFormat() {
//假设服务器传给我们的是这样的日期字符串 我们需要的格式是 2017年5月29日 下午5:38
//先把日期字符串转换为Date
String dateString = "17/5/29 17:38:56";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy/MM/dd HH:mm");
Date parse = null;
try {
parse = simpleDateFormat.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
//再把日期格式化成自己需要的样子
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy年MM月dd日 ahh:mm");
if (parse != null) {
String format = simpleDateFormat2.format(parse);
System.out.println(format); //输入结果 2017年05月29日 下午05:38
}
}
SimpleDateFormat既可以把日期字符串转换为Date,又可以将Date转换为规定格式的日期字符串,这基本上可以满足我们对日期格式的所有要求了。