Date类
//1.创建日期对象
Date d = new Date();
System.out.println(d);
//2. 拿到时间戳
long time = d.getTime();
System.out.println(time);
//只获取时间戳推荐使用
//System.currentTimeMillis();
//3.把时间戳转为日期对象
Date date = new Date(time);
long time1 = date.getTime();
System.out.println(time1);
//把时间对象的时间设置为当前时间的时间戳
xDate date1 = new Date();
date1.setTime(time);
System.out.println(date1.getTime());
SimpleDateFormat类
//SimpleDateFormat 用于格式化日期对象 变成想看到的日期格式 返回String类型
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(new Date());
System.out.println(format);
String lastTime = "2023/05/07";
//字符串日期转换成Date日期对象
Date parse = sdf.parse(lastTime);
System.out.println(parse);
SimpleDateFormat存在的问题
/**
* 目标:搞清楚为什么要用JDK 8开始新增的时间类。
*/
public class Test {
public static void main(String[] args) {
// 传统的时间类(Date、SimpleDateFormat、Calendar)存在如下问题:
// 1、设计不合理,使用不方便,很多都被淘汰了。
Date d = new Date();
//System.out.println(d.getYear() + 1900);
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
System.out.println(year);
// 2、都是可变对象,修改后会丢失最开始的时间信息。
// 3、线程不安全。
// 4、不能精确到纳秒,只能精确到毫秒。
// 1秒 = 1000毫秒
// 1毫秒 = 1000微妙
// 1微妙 = 1000纳秒
}
}