dete类,calendar类,clock类,instant类,localtime类,duration类,localdate类,period类的特性(2)-爱代码爱编程
Calendar类 优点:可以进行日期和时间的计算,支持时区设置,精 度可以到纳秒级别。
缺点:代码复杂,易出错,不够直观。
(2)Calendar类的常用方法
Calendar类是Java中用于处理日期和时间的类,它提供了一系列的方法来操作日期和时间,包括获取、设置、计算等。下面是Calendar类的一些特性和常用方法:
1. Calendar类是一个抽象类,不能直接实例化,需要通过getInstance()方法获取实例。
2. Calendar类提供了一系列常量来表示日期和时间的各个字段,如YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、MINUTE、SECOND等。
3. Calendar类提供了一系列方法来获取和设置日期和时间的各个字段,如get()、set()、add()、roll()等。
4. Calendar类提供了一系列方法来进行日期和时间的计算和比较,如getTimeInMillis()、compareTo()、before()、after()等。 下面是一些常用的Calendar类方法:
1. get(int field)方法
该方法用于获取指定字段的值,返回值为整型。
import java.util.Calendar;
public class ImportWay {
public static void main (String []args){
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;//月份从0开始,需要加1
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("当前日期:" + year + "-" + month + "-" + day);
}
}
结果
当前日期:2023-3-16
2. set(int field, int value)方法
该方法用于设置指定字段的值。
import java.util.Calendar;
public class ImportWay {
public static void main (String []args){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2022);
calendar.set(Calendar.MONTH,Calendar.JANUARY);
calendar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println("设置后的日期:" + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH));
}
}
设置后的日期:2022-1-1
3. add(int field, int amount)方法
该方法用于对指定字段进行加减操作
import java.util.Calendar;
public class ImportWay {
public static void main (String []args){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 7);
System.out.println("一周后的日期:" + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + " " + calendar.get(Calendar.DAY_OF_MONTH));
}
}
输出结果
一周后的日期:2023-3 24
4. getTime()方法
该方法用于获取当前Calendar对象所表示的日期和时间,返回值为Date类型。
import java.util.Calendar;
import java.util.Date;
public class ImportWay {
public static void main (String []args){
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println("当前时间:" + date);
}
}
输出结果
当前时间:Fri Mar 17 15:31:53 CST 2023
//cst的意思在我上期作品中已经解释过了
5. setTime(Date date)方法
该方法用于设置当前Calendar对象所表示的日期和时间。
import java.util.Calendar;
import java.util.Date;
public class ImportWay {
public static void main (String []args){
Calendar calendar = Calendar.getInstance();
Date date = new Date(1640995200000L);//2022年1月1日
calendar.setTime(date);
System.out.println("设置后的日期:" + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH));
}
}
输出结果
设置后的日期:2022-1-1
6. compareTo(Calendar anotherCalendar)方法
该方法用于比较当前Calendar对象和指定Calendar对象的先后顺序,返回值为0表示相等,小于0表示当前对象在指定对象之前,大于0表示当前对象在指定对象之后。
import java.util.Calendar;
public class ImportWay {
public static void main (String []args){
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
calendar2.add(Calendar.DAY_OF_MONTH, 1); // 比calendar1晚1天
int result = calendar1.compareTo(calendar2);
System.out.println("calendar1和calendar2的比较结果:" + result);
}
}
calendar1和calendar2的比较结果:-1
可以看到,通过compareTo()方法可以比较两个Calendar对象的先后顺序。
7. equals(Object obj)方法 该方法用于判断当前Calendar对象是否等于指定对象。如果两个对象表示的日期和时间相同,则返回true,否则返回false。
import java.util.Calendar;
public class ImportWay {
public static void main (String []args){
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(calendar1.getTime()); // 设置为和calendar1相同的时间
boolean result = calendar1.equals(calendar2);
System.out.println(calendar1.getTime());
System.out.println("calendar1和calendar2是否相等:" + result);
}
}
Fri Mar 17 15:42:18 CST 2023
calendar1和calendar2是否相等:true
可以看到,通过equals()方法可以判断两个Calendar对象的日期和时间是否相同。