传统的日期和时间
Date
- 代表的是日期和时间
| 构造器 | 说明 |
|---|---|
| public Date() | 创建一个Date对象,代表的是系统当前此刻日期时间 |
| public Date(long time) | 把时间毫秒值转换成Date日期对象 |
| 常见方法 | 说明 |
|---|---|
| public long getTime() | 返回从1970年1月1日 00:00:00 走到此刻的总毫秒数 |
| public void setTime(long time) | 设置日期对象的时间为当前时间毫秒值对应的时间 |
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);
}
}

被折叠的 条评论
为什么被折叠?



