Java之Calendar(日历)的用法摘要

概述:

  Calendar是一个抽象类【 public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {······}】,主要用来操作日历时间字段。在Java.util.Calendar包中,Calendar在开发中基本都会使用得到,这里对经常使用到的做个总结,也可能有遗漏,但日常开发应该够用,遇到再补。

  java中Calendar.getInstance()和new Date()的差别是什么?

  如果你只是要一个当前时区当前日期时间的话,没什么区别。
Calendar是Java版本更新的产物,可以设置特定的年月日和时区等,
新的程序就已经可以不用Date类了,因为这个类留下来主要是为了兼容以前的程序,
如果完全删掉的话以前用Date的程序就不能运行了。
Calendar.getInstance()是获取一个Calendar对象并可以进行时间的计算,时区的指定.
new Date()是创建了一个date对象,默认是utc格式的。
二者可以相互转化:// 从一个 Calendar 对象中获取 Date 对象::Date date = calendar.getTime();
// 将 Date 对象反应到一个 Calendar 对象中,// Calendar/GregorianCalendar 没有构造函数可以接受 Date 对象
// 所以我们必需先获得一个实例,然后设置 Date 对象:::calendar.setTime(date);
 为什么说返回的是Calendar的子类对象呢,因为每个国家地区都有自己的一套日历算法,比如西方国家的第一个星期大部分为星期日,而中国则为星期一,我们来看看getInstance方法获取实例的源码

 

常用的方法

 

abstract void add(int field, int amount)此方法添加或减去指定的时间量,以给定日历字段,基于日历的规则。
boolean after(Object obj)这个方法返回当前日历是否代表在指定Object表示的时间之后的时间
boolean before(Object when)这个方法返回当前日历是否代表在指定Object表示的时间之前的时间
void clear()此方法设置此Calendar的所有日历字段值和时间值(毫秒从历元至偏移量)未定义
Object clone()此方法创建并返回此对象的一个副本。
int compareTo(Calendar anotherCalendar)这个方法比较两个Calendar对象表示的时间值(从历元至毫秒偏移量)。
boolean equals(Object obj)这个方法使日历比较指定的对象。
int get(int field)此方法返回给定日历字段的值。
int getActualMaximum(int field)此方法返回指定日历字段可能拥有的最大值,鉴于此Calendar时间值。

举例

1,获取今天或者之后多少天的日期

 public void getTest(){  

        calendar.setTime(new Date());  

        /*获取今天的日期*/  

        System.out.println("今天的日期是:"+calendar.get(Calendar.DAY_OF_MONTH));  

        /*获取十天之后的日期*/  

        calendar.clear();//避免继承当前系统的时间  

        calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)+10);  

        System.out.println("十天之后的日期是:"+calendar.get(Calendar.DAY_OF_MONTH));  

    }  

转载于:https://www.cnblogs.com/Williamwen/p/9889047.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值