System.out.println(cal);//java.util.GregorianCalendar[time=1628815192318,areFieldsSet=true,…]
//用Calendar类get方法来获取具体时间
System.out.println(cal.get(Calendar.YEAR));// 年 2021
System.out.println(cal.get(Calendar.MONTH)+1);// 8月 月份从0开始
System.out.println(cal.get(Calendar.DATE));// 日
System.out.println(cal.get(Calendar.HOUR));// 时
System.out.println(cal.get(Calendar.MINUTE));// 分
System.out.println(cal.get(Calendar.SECOND));// 秒
//用Calendar类set方法设置时间—>用于计算
cal.set(Calendar.YEAR, cal.get(Calendar.YEAR)+10);// 十年以后 2031
System.out.println(cal.get(Calendar.YEAR));
cal.set(Calendar.MONTH,cal.get(Calendar.MONTH)+4);// 3月以后 11 月份从0开始的
System.out.println(cal.get(Calendar.MONTH));
//…同理日,时分秒都可以设置并计算
}
}
输出结果:
java.util.GregorianCalendar[time=1628815192318,areFieldsSet=true,…]
2021 // 年
8 // 月
13 // 日
9
5
22
2031 // 十年以后
11 //3月以后
【参考代码】
Calendar cal = Calendar.getInstance();// 实例化对象
get()方法解释:
get(你想获取的Canendar对象的信息)
例:cal.get(Calendar.YEAR);// 获取年份
set()方法解释:
set(需要设置的Calendar对象,获取该对象你需要信息)—>设置就可以用来计算
例:
cal.set(Calendar.YEAR, cal.get(Calendar.YEAR)+10);// 计算十年以后
System.out.println(cal.get(Calendar.YEAR));
[](
)Date类和Calendar类相互转换:
Date类和Calendar类既然有联系那必然可以相互转换,下面这段代码让大家更直观的了解:
【参考代码】
Date d = new Date();
System.out.println(d);
Calendar cal = Calendar.getInstance();//实例化对象
cal.getTime();
System.out.println(cal.getTime());
/*
输出结果:
Fri Aug 13 09:35:45 CST 2021
Fri Aug 13 09:35:45 CST 2021
*/
Calendar实例化的对象.getTime()就能获取到当前的系统时间,即一个Date对象,也就是Date d==cal.getTime();
###Calendar类转成了Date类
Calendar cal = Calendar.getInstance();
Date d = cal.getTime();
###Date类转成了Calendar类
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
总结:对于Calendar类我们需要掌握:
1.get()方法 获取到时间的某一部分
2.set()方法 设置时间 - -> 计算时间:系统已经帮我们设置好了,不用担心二月有多少天等问题,计算时间十分方便
3.getTime()方法,得到的是一个Date类型的实例
4.setTime()方法,将Date类型的实例给到Calendar类
[](
)格式化时间
通过上面的学习,我们知道Date,Calendar类通过引用可以进行时间的格式化,将年月日、时分秒一个个例举出来,可见比较繁琐,而SimpleDateFormat类是专门帮我们格式化时间的工具类,format()方法 和 parse()方法 能够帮我们在时间和字符串之间相互转换,十分方便。它在java.text包中。
[](
)时间转成字符串:format(Date date)方法
format(Date) 帮我们把时间转成字符串,格式化时间。字符串的格式为SimpleDateFormat类定义对象时设置的时间格式
【时间格式】:yyyy-MM-dd HH:mm:ss
【参考代码】
package Simple;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;
public class Test {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d); //Thu Aug 12 08:40:08 CST 2021 不美观
//设置格式化时间的模式,我们常用yyyy-MM-dd HH:mm:ss这个字符串模式
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);// 时间格式
String s = sdf.format(d); // 格式化时间
System.out.println(s); // 2021-08-12 08:45:09
}
}
[](
)字符串转成时间:parse(String string)方法
【参考代码】
package Simple;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println(“请输入一个时间(yyyy-MM-dd HH:mm:ss):”);
String s = sc.nextLine();
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
Date d = sdf.parse(s); // 把字符串转成时间
System.out.println(d); //Thu Aug 12 12:25:21 CST 2021
}
}
|