日期和时间格式由日期和时间模式字符串指定。在日期和时间模式字符串中,A—Z,a—z这些字母(不被单引号包围的)会被特殊处理替换为对应的日期时间,其他的字符串还是原样输出。
日期和时间模式(注意大小写,代表的含义是不同的)
示例: 以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56。
构造方法
SimpleDateFormat(String pattern);
-
构造一个SimpleDateFormat并使用默认模式和日期格式符号为默认的FORMAT区域设置
-
如果我们构造方法中什么都不写,就表示默认格式
-
默认格式: 年份后两位 月份 日期 上午(下午) 几时 几分
-
-
该方法中传递的参数就是一个指定格式(字符串形式,就和正则表达式类似)
-
y表示年,M表示月,d表示日,h表示时,m表示分,s表示秒
日期---->字符串
format(Date date);
-
将日期转换为指定格式的字符串
-
具体转换为什么格式要通过SimpleDateFormat类的构造方法中传递的参数确定
-
案例:
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
public static void main(String[] args) {
//日期转字符串
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS E");
String s = sdf.format(date);
System.out.println(s);//2022-03-30 20:37:48 444 星期三
}
}
字符串---->日期
parse(String x);
-
将指定格式的字符串转换为日期对象(这里的日期对象指的是java.util.Date类的对象)
-
这个方法会抛出一个异常,因为我们调用这个方法时输入的字符串可能不符合格式,这个时候就会出现一个解析异常(ParseException),我们可以通过try—catch----final或者使用throws+异常类型的方式解决这个异常
-
字符串日期格式与指定格式必须一致parse(String x);
-
这里格式化的方法和我们的解析方法都是非静态方法,所以我么要通过创建SimpleDateFormat类的对象,然后再通过创建的对象来调用
案例:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
public static void main(String[] args) {
String s = "2022-03-30";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(s);
} catch (ParseException e) {
System.out.println(e.getMessage());
}
System.out.println(date);//Wed Mar 30 00:00:00 CST 2022
}
}