java.text.SimpleDateFormat类,以与语言有关的方式来格式化、解析日期
日期和时间格式由 “日期和时间模式” 字符串指定
- 英文文本需要使用单引号(
'
)引起来,以免进行解释 - 未加引号的字母
'A'
到'Z'
和'a'
到'z'
被解释为模式字母,通常是重复的,数量确定其精确表示 - 其他字符均不解释,只是在格式化时简单复制到输出字符串,或者在解析时与输入字符串进行匹配
一、常用方法
// 构造方法
// 按照指定格式生成 SimpleDateFormat 对象
SimpleDateFormat(String pattern)
SimpleDateFormat(String pattern, Locale locale)
// 成员方法
// SimpleDateFormat 继承自 DateFormat 的成员方法
public final String format(Date date)
public Date parse(String source) throws ParseException
二、练习使用
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy.MM.dd 'at' HH:mm:ss");
String dateStr1 = sdf1.format(new Date());
System.out.println(dateStr1); // 2021.05.24 at 20:35:09
SimpleDateFormat sdf2 = new SimpleDateFormat("E M d '' yyyy");
String dateStr2 = sdf2.format(new Date());
System.out.println(dateStr2); // 周一 5 24 ' 2021
SimpleDateFormat sdf3 = new SimpleDateFormat("HH 'o''clock' yyyy-MM-dd");
String dateStr3 = sdf3.format(new Date());
System.out.println(dateStr3); // 20 o'clock 2021-05-24
三、练习题
1、日期和字符串的相互转化
// 解析:文本 --> 日期
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = sdf1.parse("2021-05-24 20:38:46");
System.out.println(date); // Mon May 24 20:38:46 CST 2021
} catch (ParseException e) {
throw new RuntimeException(e);
}
// 格式化:日期 --> 文本
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String dateStr = sdf2.format(new Date());
System.out.println(dateStr); // 2021年05月24日 20时38分50秒