import java.util.Date;
public class Test {
public static void main(String[] args){
// 目标:掌握Date日期类的使用
// 创建一个Date的对象,代表系统当前时间信息
Date d = new Date();
System.out.println(d);
// 拿到时间毫秒值
long time = d.getTime();
System.out.println(time);
// 把时间毫秒值转换成日期对象,2s之后时间是多少
time += 2 * 1000;
Date d2 = new Date(time);
System.out.println(d2);
// 直接把日期对象的时间通过setTime方法进行修改
Date d3 = new Date();
d3.setTime(time);
System.out.println(d3);
}
}
SimpleDateFormat
代表简单日期格式化,可以用来把日期对象、时间毫秒值格式化成我们想要的格式。
常见构造器
说明
public SimpleDateFormat(String pattern)
创建简单日期格式化对象,并封装时间的格式
格式化时间的方法
说明
public final String format(Date date)
将日期格式化成日期/时间字符串
public final String format(Object time)
将时间毫秒值化成日期/时间字符串
例子
给定的日期和时间是 2001-07-04 12:05:56
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args){
// 目标:掌握SimpleDateFormat的使用
Date d = new Date();
System.out.println(d);
long time = d.getTime();
System.out.println(time);
// 格式化日期对象和时间、毫秒值
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
String rs = sdf.format(d);
String rs2 = sdf.format(time);
System.out.println(rs);
System.out.println(rs2);
}
}
时间格式的常见符号:
SimpleDateFormat解析字符串时间成为日期对象
解析方法
说明
public Date parse(String source)
把字符串时间解析成日期对象
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args) throws ParseException {
// 目标:掌握SimpleDateFormat解析字符串时间成为日期对象
String dateStr = "2022-12-12 12:12:11";
// 创建简单日期格式化对象,指定的时间格式必须与被解析的时间格式一模一样,否则出现会出bug
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(dateStr);
System.out.println(d);
}
}
案例练习
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args) throws ParseException {
// 目标:掌握SimpleDateFormat解析字符串时间成为日期对象
String start = "2023年11月11日 0:0:0";
String end = "2023年11月11日 0:10:0";
String xj = "2023年11月11日 0:1:18";
String xp = "2023年11月11日 0:10:57";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 H:m:s");
Date startDt = sdf.parse(start);
Date endDt = sdf.parse(end);
Date xjDt = sdf.parse(xj);
Date xpDt = sdf.parse(xp);
long startTime = startDt.getTime();
long endTime = endDt.getTime();
long xjTime = xjDt.getTime();
long xpTime = xpDt.getTime();
if (xjTime >= startTime && xjTime <= endTime){
System.out.println("小贾您秒杀成功");
}else {
System.out.println("小贾您秒杀失败");
}
if (xpTime >= startTime && xpTime <= endTime){
System.out.println("小皮您秒杀成功");
}else {
System.out.println("小皮您秒杀失败");
}
}
}
Calendar
代表的是系统此刻时间对应的日历。
通过它可以单独获取、修改时间中的年、月、日、时、分、秒等。
Calendar日历类的常见方法
方法名
说明
public static Calendar getInstance()
获取当前日历对象
public int get(int field)
获取日历中的某个信息
public final Date getTime()
获取日期对象
public long getTimeInMillis()
获取时间毫秒值
public void set(int field,int value)
修改日历的某个信息
public void add(int field,int amount)
为某个信息增加/减少指定的值
import java.util.Calendar;
import java.util.Date;
public class Test {
public static void main(String[] args){
// 目标:掌握Calendar的使用和特点
// 得到系统此刻时间对应的日历对象
Calendar now = Calendar.getInstance();
System.out.println(now);
// 获取日历中的某个信息
int year = now.get(Calendar.YEAR);
System.out.println(year);
int days = now.get(Calendar.DAY_OF_YEAR);
System.out.println(days);
// 拿到日历中记录的日期对象
Date d = now.getTime();
System.out.println(d);
//拿到时间毫秒值
long time = now.getTimeInMillis();
System.out.println(time);
// 修改日历中的某个信息
now.set(Calendar.MONTH,9);
now.set(Calendar.DAY_OF_YEAR,125);
System.out.println(now);
// 为某个信息增加或者减少多少
now.add(Calendar.DAY_OF_YEAR,100);
now.add(Calendar.DAY_OF_YEAR,-10);
now.add(Calendar.DAY_OF_MONTH,6);
now.add(Calendar.HOUR,12);
System.out.println(now);
}
}