java.txt.SimpleDateFormat类
java.txt.SimpleDateFormat类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
允许进行 格式化 :日期 —>文本, 解析 :文本 —>日期
- 格式化
– SimpleDateFormat() : 默认的模式和语言环境创建对象
– public SimpleDateFormat(String pattern) : 该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用fromat()和parse()方法
– public String format(Date date) : 方法格式化时间对象date - 解析
– public Date parse(String source) : 从给定字符串的开始解析文本,以生成一个日期
@Test
public void test1() throws ParseException {
/**
* SimpleDateFormat的使用:SimpleDateFormat对日期Date类的格式化和解析
* 1,两个操作
* 1.1 格式化:日期 --->字符串(文本)
* 1.2 解析:格式化的逆过程,字符串(文本) --->日期
*
* 2,SimpleDateFormat的实例化
*/
//实例化SimpleDateFormat:使用默认的构造器
SimpleDateFormat sdf = new SimpleDateFormat();
//格式化:日期 ---> 文本
Date date = new Date();
System.out.println(date);//Tue Nov 03 16:11:22 CST 2020
String format = sdf.format(date);
System.out.println(format);//20-11-3 下午4:11
//解析:格式化的逆过程,字符串(文本) --->日期(parse 是语法分析的意思)
// String str = "20-11-3 下午4:11";//当使用空参构造器时,只能使用这种日期时间格式的参数,不能自定义格式,带参构造器可以
Date parse = sdf.parse(format);
System.out.println(parse);//Tue Nov 03 16:11:00 CST 2020
//new SimpleDateFormat(Pattern):使用带参构造器(参数pattern为样版)
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//格式化
String format1 = sdf1.format(date);
System.out.println(format1);//2020-11-03 04:11:22
//解析:要求字符串必须是符合SimpleDateFormat识别的格式(通过构造器参数体现),否则,抛异常
Date parse1 = sdf1.parse(format1);
System.out.println(parse1);//Tue Nov 03 04:11:22 CST 2020
}
/*
案例:字符串"2020-09-08"转换为java.sql.Date
*/
@Test
public void test2() throws ParseException {
String birth = "2020-09-08";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(birth);//这个Date是util下的Date,Tue Sep 08 00:00:00 CST 2020
System.out.println(date);
java.sql.Date birthDate = new java.sql.Date(date.getTime());
System.out.println(birthDate);
}
java.time.format.DateTimeFormatter类
在此只列出自定义格式:如:ofPattern(“yyyy-MM-dd hh:mm:ss”)
方法 | 描述 |
---|---|
ofPattern(String pattern) | 静态方法,返回一个指定字符串格式的DateTimeFormatter |
format(TemporalAccessor t) | 格式化一个日期,时间,返回字符串 |
parse(CharSeauence text) | 将指定格式的字符序列解析为一个日期,时间 |
@Test
public void test3(){
LocalDateTime localDateTime = LocalDateTime.now();
//方式三:自定义
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
//格式化
String str2 = formatter.format(LocalDateTime.now());
System.out.println(str2);
//解析
TemporalAccessor parse1 = formatter.parse(str2);
System.out.println(parse1);
/*
2020-11-03 03:37:34
{MinuteOfHour=37, MilliOfSecond=0, NanoOfSecond=0, HourOfAmPm=3, SecondOfMinute=34, MicroOfSecond=0},ISO resolved to 2020-11-03
*/
}