一、概念
DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化和分析日期或时间。 日期/时间格式化子类(例如SimpleDateFormat )允许格式化(即,日期→文本),解析(文本“日期”)和规范化。
二、常用构造方法
三、SimpleDateFormat
3.1、概念
SimpleDateFormat是一个用于以区域设置敏感的方式格式化和解析日期的具体类。 它允许格式化(日期→文本),解析(文本→日期)和规范化。
3.2、语法
yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区
举例:
public static void main(String[] args) {
SimpleDateFormat s1=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat s2=new SimpleDateFormat("yy/MM/dd HH:mm");
SimpleDateFormat s3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
SimpleDateFormat s4=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat s5=new SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
Date now=new Date();
System.out.println(s1.format(now));
System.out.println(s2.format(now));
System.out.println(s3.format(now));
System.out.println(s4.format(now));
System.out.println(s5.format(now));
System.out.println(now.toString());
}
输出结果:
2020年12月14日 18时41分01秒
20/12/14 18:41
2020-12-14 18:41:01
2020年12月14日 18时41分01秒 星期一
一年中的第 349 天 一年中第51个星期 一月中第3个星期 在一天中18时 CST时区
Mon Dec 14 18:41:01 CST 2020
3.3、format方法
SimpleDateFormat s1=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date d = new Date();
System.out.println(d);
String s = s1.format(d);
System.out.println(s);
format:将Date对象 转换为字符串"yyyy年MM月dd日 HH时mm分ss秒"
3.4、parse方法
parse:将"yyyy年MM月dd日 HH时mm分ss秒"日期字符串,转换为Date对象