SimpleDateFormat类作用:
格式化:把时间变成我们喜欢的格式
解析:把字符串表示的时间变成Date对象
SimpleDateFormat构造方法:
public SimpleDateFormat()---------->构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern)------------>构造一个SimpleDateFormat,使用指定的格式
常用方法:
public final String format(Date date)--------->格式化(日期对象->字符串)
public Date parse(String source)-------->解析(字符串->日期对象)
格式化代码演示:
package a08datedemo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo3 {
public static void main(String[] args) {
//1.利用空参构造创建SimpleDateFormat对象,默认格式
SimpleDateFormat sdf1=new SimpleDateFormat();
Date d1=new Date(0L);
String str1 = sdf1.format(d1);
System.out.println(str1);//1970/1/1 上午8:00
//2.利用带参构造创建SimpleDateFormat对象,指定格式
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EE");//y年M月d日H时m分s秒E星期
String str2 = sdf2.format(d1);
System.out.println(str2);
}
}
运行结果:
解析代码演示:
package a08datedemo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo3 {
public static void main(String[] args) throws ParseException {
//解析:
//1.定义一个字符串表示时间
String str="2023-11-11 11:11:11";
//2.利用空参构造创建SimpleDateFormat对象
//注意:创建对象的格式要跟字符串格式一样
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(str);
System.out.println(date);
}
}
运行结果:
练习1:将字符串1990-04-20,转换成1990年04月20日
package a08datedemo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo1 {
public static void main(String[] args) throws ParseException {
//把时间变成1990年04月20日
//需要创建一个SimpleDateFormat对象,并定义格式为年月日
//需要创建一个Date对象表示1990年04月20日
//可以通过1990-04-20进行解析,解析成一个Date对象
//1.可以通过1990-04-20进行解析,解析成一个Date对象
String str="1990-04-20";
//2.解析
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf1.parse(str);
//3.格式化
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日");
String result = sdf2.format(date);
System.out.println(result);
}
}
运行结果:
练习2:
秒杀开始时间:2023年11月11日 0:0:0
秒杀结束时间:2023年11月11日 0:10:0
需求:小贾下单并付款的时间为2023年11月11日 0:01:0
小皮下单并付款的时间为2023年11月11日 0:11:0
用代码说明这两位同学有没有参加上秒杀活动
package a08datedemo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo2 {
public static void main(String[] args) throws ParseException {
//1.比较两个时间
//下单并付款时间 跟 开始时间和结束时间
//解析时间比较毫秒值
//1.定义字符串表示3个时间
String startstr="2023年11月11日 0:0:0";
String endstr="2023年11月11日 0:10:0";
String orderstr="2023年11月11日 0:01:0";
//2.解析上面3个时间得到Date对象
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date startDate = sdf.parse(startstr);
Date endDate = sdf.parse(endstr);
Date orderDate = sdf.parse(orderstr);
//3.得到三个时间的毫秒值
long startTime = startDate.getTime();
long endTime = startDate.getTime();
long orderTime = startDate.getTime();
//4.判断
if(orderTime>=startTime&&orderTime<=endTime){
System.out.println("参加秒杀活动成功");
}else{
System.out.println("参加秒杀活动失败");
}
}
}
运行结果: