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对象的日期和时间是否相同。

下一期分享 Clock类

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值