JDK7 SimpleDateFormat类
SimpleDateFormat的作用
格式化:把时间变成我们喜欢的格式。
解析:把字符串表示的时间变成Date对象。
构造方法
利用空参构造创建SimpleDateFormat对象,格式化时间
import java.text.SimpleDateFormat;
import java.util.Date;
public class JDK7_SimpleDateFormat {
public static void main(String[] args){
// 利用空参构造创建SimpleDateFormat对象,默认格式
SimpleDateFormat sdf = new SimpleDateFormat();
// 创建一个时间原点
Date d = new Date(0L);
// 将时间格式化
String str = sdf.format(d);
System.out.println(str);
}
}
输出结果
"C:\Program Files\Java\jdk-17.0.5\bin\java.exe" "-javaagent:E:\IntelliJ IDEA 2021.1.3\lib\idea_rt.jar=62122:E:\IntelliJ IDEA 2021.1.3\bin" -Dfile.encoding=UTF-8 -classpath E:\JAVA_Code\test\out\production\test;E:\JAVA_Code\test\ilb\gson-2.6.2.jar JDK7_SimpleDateFormat
1970/1/1 上午8:00
可以看到时间被默认格式化了
利用带参构造创建SimpleDateFormat对象,指定格式
import java.text.SimpleDateFormat;
import java.util.Date;
public class JDK7_SimpleDateFormat {
public static void main(String[] args){
// 利用带参构造创建SimpleDateFormat对象,指定格式化格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// 创建一个时间原点
Date d = new Date(0L);
// 使用.format方法传入要格式化的时间
String format = sdf.format(d);
// 打印
System.out.println(format);
}
}
解析字符串,将字符串变成时间
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JDK7_SimpleDateFormat {
public static void main(String[] args) throws ParseException {
// 定义一个字符串
String str = "2023-11-11 11:11:11";
// 创建一个SimpleDateFormat对象,指定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 解析字符串并且返回时间
Date parse = sdf.parse(str);
// 打印结果
System.out.println(parse);
}
}
输出结果
"C:\Program Files\Java\jdk-17.0.5\bin\java.exe" "-javaagent:E:\IntelliJ IDEA 2021.1.3\lib\idea_rt.jar=50549:E:\IntelliJ IDEA 2021.1.3\bin" -Dfile.encoding=UTF-8 -classpath E:\JAVA_Code\test\out\production\test;E:\JAVA_Code\test\ilb\gson-2.6.2.jar JDK7_SimpleDateFormat
Sat Nov 11 11:11:11 CST 2023
练习:按照指定格式展示
假设:你初恋的出生年月日为:2000-11-11,请用字符串表示这个数据,并且将其转换为:2000年11月11日
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JDK7_SimpleDateFormat {
public static void main(String[] args) throws ParseException {
// 定义字符串为生日年月日
String str = "2000-11-11";
// 创建带参构造SimpleDateFormat对象,指定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 解析为时间
Date d = sdf.parse(str);
// 再次创建带参构造SimpleDateFormat对象,指定格式
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
// 格式化时间
String format = sdf2.format(d);
// 打印结果
System.out.println(format);
}
}
输出结果
"C:\Program Files\Java\jdk-17.0.5\bin\java.exe" "-javaagent:E:\IntelliJ IDEA 2021.1.3\lib\idea_rt.jar=50691:E:\IntelliJ IDEA 2021.1.3\bin" -Dfile.encoding=UTF-8 -classpath E:\JAVA_Code\test\out\production\test;E:\JAVA_Code\test\ilb\gson-2.6.2.jar JDK7_SimpleDateFormat
2000年11月11日
练习:秒杀活动
需求:
肯打鸡现时1元秒杀时间为:2023年11月11日 0:0:0开始——2023年11月11日 0:10:0结束
小暗的下单并付款时间为:2023年11月11日 0:10:00
菈菈的下单并付款时间为:2023年11月11日 0:11:00
用代码说明这两位同学有没有参加上秒杀活动?
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JDK7_SimpleDateFormat {
public static void main(String[] args) throws ParseException {
// 定义秒杀开始时间
String startstr = "2023年11月11日 0:0:0";
// 定义秒杀结束时间
String endstr = "2023年11月11日 0:10:0";
// 定义小暗的下单并付款时间
String xnstr = "2023年11月11日 0:01:0";
// 定义菈菈的下单并付款时间
String llstr = "2023年11月11日 0:11:0";
// 创建带参SimpleDateFormat对象,指定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// 解析秒杀开始时间
Date startdate = sdf.parse(startstr);
// 解析秒杀结束时间
Date enddate = sdf.parse(endstr);
// 解析小暗下单并付款时间
Date xndate = sdf.parse(xnstr);
// 解析菈菈下单并付款时间
Date lldate = sdf.parse(llstr);
// 获取秒杀开始时间的毫秒值
long starttime = startdate.getTime();
// 获取秒杀结束时间的毫秒值
long endtime = enddate.getTime();
// 获取小暗下单并付款时间毫秒值
long xntime = xndate.getTime();
// 获取菈菈下单并付款时间毫秒值
long lltime = lldate.getTime();
// 判断小暗是否成功参加活动
if (starttime < xntime && endtime > xntime){
System.out.println("小暗参加秒杀活动成功");
}else{
System.out.println("小暗参加秒杀活动失败");
}
// 判断菈菈是否成功参加活动
if (starttime < lltime && endtime > lltime){
System.out.println("菈菈参加秒杀活动成功");
}else{
System.out.println("菈菈参加秒杀活动失败");
}
}
}
输出结果
"C:\Program Files\Java\jdk-17.0.5\bin\java.exe" "-javaagent:E:\IntelliJ IDEA 2021.1.3\lib\idea_rt.jar=51125:E:\IntelliJ IDEA 2021.1.3\bin" -Dfile.encoding=UTF-8 -classpath E:\JAVA_Code\test\out\production\test;E:\JAVA_Code\test\ilb\gson-2.6.2.jar JDK7_SimpleDateFormat
小暗参加秒杀活动成功
菈菈参加秒杀活动失败
总结
1.SimpleDateFormat的两个作用
格式化
解析
2.如何指定格式
yyyy年MM月dd日 HH:mm:ss