Date类
概述
Date类的对象在Java中代表的是当前所在系统的此刻日期时间,说白了就是你计算机上现实的时间。
基本用法
1,直接输出当前日期:
public class Test {
public static void main(String[] args){
Date d = new Date();
System.out.println(d);
}
}
结果:Tue Oct 18 19:12:33 CST 2022
2,获取时间毫秒值,这里说明一下是从1970年1月1日00:00到现在的毫秒数。嗯?要毫秒值干什么?计算天数!因为java没有直接提供天数的计算方法,所以你只能用毫秒数来计算。
public class Test {
public static void main(String[] args){
// Date d = new Date();
// System.out.println(d);
long time = d.getTime();
System.out.println(time);
}
}
结果:1666092116318
练习:当前时间加上 1小时121秒 之后的时间是多少。这里有个知识点,把毫秒类型的数据当参数传进去会自动转成日期类型的数据。
public class Test {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);
long time = d.getTime();
time += (60 * 60 + 121) * 1000;
Date d2 = new Date(time);
System.out.println(d2);
}
}
结果:Tue Oct 18 19:30:31 CST 2022
Tue Oct 18 20:32:32 CST 2022
SimpleDateFormat类
概念
就是简单日期格式化类。上面讲的Date类输出的日期格式是不是过于复杂且不符合我们日常使用的规范?所以出现了SimpleDateFormat类,使日期输出更简洁。
用法
和这里要讲的就是构造器里的参数形式:
SimpleDateFormat 对象名 = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。我们还可以输出周几,上午下午,只需在后面加上 "EEE a" 即可。
public class Test {
public static void main(String[] args) {
Date d = new Date();
SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
String r = s.format(d);
System.out.println(r);
}
}
结果:2022年10月18日 19:54:47 星期二 下午
案例:给定某个时间,输出经过多少时间之后的时间。
首先你得到的是字符串形式的时间格式,我们要先解析成日期格式,例如毫秒值或者日期对象。需要先转成标准日期格式,再调用parse方法改成毫秒。这里有一点要说明,你给出的时间的格式要符合java里的日期格式是吧,比如你给的时间是2022年,你不能只写个22。还有一点,我们要改的时间毫秒数可能很大马,所以最好转成long类型进行计算。
public class Test {
public static void main(String[] args) throws ParseException {
String dateStr = "2021-08-06 11:11:11";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(dateStr);
long time = d.getTime() + (2L * 24 * 60 * 60 + 14 * 60 * 60 + 49 * 60 + 6) * 1000;
System.out.println(sdf.format(time));
}
}
结果:2021-08-09 02:00:17