其实这些东西直接看例子会好一点
日期类(Date)
日期类往往与日期工具一起使用:
public class ApiDate {
public static void main(String[] args) {
method();
}
public static void method() {
//默认为当前日期
Date date = new Date();
System.out.println(date);
//返回这个月的第几天
System.out.println(date.getDate());
//返回星期几
System.out.println(date.getDay());
//返回年份
System.out.println(date.getYear());
//返回从1970年到现在过了多少毫秒
System.out.println(date.getTime());
//返回小时
System.out.println(date.getHours());
//返回分钟
System.out.println(date.getMinutes());
//返回秒钟
System.out.println(date.getSeconds());
//获取本地时区的字符串
System.out.println(date.toLocaleString());
//校对时间
System.out.println(date.getTimezoneOffset());
}
}
日期工具(SimpleDateFormat)
在我们的正常情况下,我们输入的一个时间往往是以字符串的形式读进去的,比如2000-06-08这种,但是我们在计算时间的时候往往无法这么做,我们需要一个工具来为我们判断把字符串转化为Date型,从而通过其他方法来将其通过比较等来实现计算。
format(Date):把Date格式化成字符串
parse(String):把String解析成Date
我们通过一个简单的例子来使用这个工具:我出生于2000–06-08,今天是2021-01-14,我算一下我已经出生了多少天以及我的年龄
public class ApiSimpleDateFormat {
public static void main(String[] args) throws ParseException {
method();
}
public static void method() throws ParseException {
String input = new Scanner(System.in).nextLine();
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
Date date = s.parse(input);
long last = date.getTime();
long current = System.currentTimeMillis();
System.out.println((current-last)/1000/60/60/24);
System.out.println(7525/365);
}
}
其中唯一要注意的地方在于SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
此处是因为我们需要一个特定的输入格式,来解析我们的数据,那么聪明的小伙伴就要问了,那这个格式要怎么写呢?其实除了一些人为规定的部分字母用来作为年月日等的表示词外其他的格式可以自行修改。比如SimpleDateFormat s = new SimpleDateFormat("yyyy MM dd");
就是输入的格式必须为2021 1 14;类似于这种,至于哪一个字母具体表示哪一个时间,请看下表: