接下来会学习JDK8以前传统的日期、时间,以及JDK8开始新增的日期、时间;有部分项目还是有在使用JDK8以下的日期和时间的,所以我们仍然要去了解和学习它们。
先开始学习Date日期类
Date
- 代表的是日期和时间。
构造器、常用的方法
构造器 | 说明 |
public Date() | 创建一个Date对象,代表的是系统当前此刻日期时间。 |
public Date(long time) | 把时间毫秒值转换成Date日期对象。 |
常见方法 | 说明 |
public long getTime() | 返回从1970年1月1日00:00:00走到此刻的总的毫秒数 |
public void setTime(longtime) | 设置日期对象的时间为当前时间毫秒值对应的时间 |
用法示例
public class Test { public static void main(String[] args) { //1.创建一个Date的对象,代表系统当前时间信息 Date d = new Date(); System.out.println(d); //2.拿到时间毫秒值 long time = d.getTime(); System.out.println(time); //3.把时间毫秒值转换成日期对象,并且输出2s之后的时间是多少 time += 2 * 1000; Date d2 = new Date(time); System.out.println(d2); //4.直接把日期对象通过setTime方法进行修改 Date d3 = new Date(); d3.setTime(time); System.out.println(d3); } }
运行结果:
接下来再来学习关于日期时间的另一个类:SimpleDateFormat
为什么要用SimpleDataFormat?
是为了将Date类的对象以我们指定的格式输出,更加人性化。
SimpleDateFormat
- 代表简单日期格式化,可以用来把日期对象、时间毫秒值格式化成我们想要的形式。
构造器、格式化时间的方法
常见构造器 | 说明 |
public SimpleDateFormat(String pattern) | 创建简单日期格式化对象,并封装时间的格式 |
格式化时间的方法 | 说明 |
public final String format(Date date) | 将日期格式化成日期/时间字符串 |
public final String format(Object time) | 将时间毫秒值式化成日期/时间字符串 |
在使用它们之前,我们要先了解时间格式的常见符号:
时间格式的常见符号
符号 | 意义 |
y | 年 |
M | 月 |
d | 日 |
H | 时 |
m | 分 |
s | 秒 |
EEE | 星期几 |
a | 上午/下午 |
用法示例
public class Test { public static void main(String[] args) { System.out.println(d3); //1.准备一些时间 System.out.println("格式化之前:"); Date d = new Date(); System.out.println(d); //日期对象 long time = d.getTime(); System.out.println(time); //时间毫秒值 System.out.println(); //2.格式化日期对象和时间毫秒值 System.out.println("格式化后:"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a"); String rs1 = sdf.format(d); String rs2 = sdf.format(time); System.out.println(rs1); System.out.println(rs2); } }
运行结果:
解析字符串时间成为日期对象
解析方法 | 说明 |
public Date parse(String source) | 把字符串时间解析成日期对象 |
public class Test { public static void main(String[] args) throws ParseException { //1.创建简单日期格式化对象,指定的时间格式必须与被解析的时间格式一模一样,否则程序会bug String dateStr = "2020-12-12 12:12:11"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d = sdf.parse(dateStr); //这里会抛出“异常”报错,它是担心你写的格式与所给时间的格式不相符 System.out.println(d); } }
运行结果:
END