SimpleDateFormat类作用:
格式化:把时间变成我们喜欢的格式;
解析:把字符串表示的时间变成Date对象;
public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern) 构造一个SimpleDateFormat,使用指定的格式
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo1 {
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);
//3.打印结果
System.out.println(date.getTime());//获取毫秒值
}
private static void method () {
//1.利用空参构造创建SimpleDateFormat();
SimpleDateFormat sdf1=new SimpleDateFormat();
Date d1=new Date(0L);
String str1=sdf1.format(d1);
System.out.println(str1);
//2.利用带参构造创建SimpleDateFormat对象,指定格式;
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年mm月dd日 HH:mm:ss");
String str2=sdf2.format(d1);
System.out.println(str2);
//星期: EE
}
}
练习1:
假设你好朋友的出生年月日为:2000-11-11;请用字符串来表示这个数据,并将其转换为:2000年11月11日;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo2 {
public static void main(String[] args) throws ParseException {
//创建一个Date对象,表示2000年11月11日
//创建一个SimpleDateFormatDemo对象,并定义格式为年月日;
//把时间变成2000年11月11日;
//1.可以通过2000-11-11进行解析,解析成一个Date对象;
String str="2000-11-11";
//2.解析
SimpleDateFormat sdf1=new SimpleDateFormat("yyy-MM-dd");
Date date = sdf1.parse(str);
//3.格式化
SimpleDateFormat sdf2=new SimpleDateFormat("yyy年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:00,代码说明小明参加上打折活动了吗?
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo3 {
public static void main(String[] args) throws ParseException {
//1.比较两个时间
//下单并付款的时间大于等于开始时间,小于等于结束时间;
//字符串先转成毫秒值,之后才可以进行比较;
String startStr="2023年11月11日 0:0:0";
String endStr="2023年11月11日 0:10:0";
String orderStr="2023年11月11日 00:1:00";
//2.解析上面的三个时间,得到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=endDate.getTime();
long orderTime=orderDate.getTime();
//4.判断
if(orderTime>=startTime&&orderTime<=endTime){
System.out.println("参加秒杀活动成功");
}else{
System.out.println("参加秒杀活动失败");
}
}
}
(二)小兰下单并且付款的时间是:2023年11月11日0:11:0,代码说明小兰有没有参加上秒杀活动?
时间改一下即可;