Android之Calendar类(时间大全)

前两天,学习自定义View画了一个时钟效果,用到了Calendar这个抽象类,针对日历时间的操作,属于Java常见类,在此记录一下简单的用法及意义。

获取日期

//获得Calendar这个类的实例:
private Calendar c = Calendar.getInstance();

//获得当前的年份
c.get(Calendar.YEAR)

//获得当前的月份
c.get(Calendar.MONTH) + 1)
注意:1月份的值为0,需加1为现实中月份

//获得今天是本月的第几天,两种写法
c.get(Calendar.DATE)
c.get(Calendar.DAY_OF_MONTH)

//获得今天是本年的第几天
c.get(Calendar.DAY_OF_YEAR)

//获得今天在本月的第几周
c.get(Calendar.DAY_OF_WEEK_IN_MONTH)

获取星期

    //获得今天是周几
    private void printDayOfWeek() {
        switch (c.get(Calendar.DAY_OF_WEEK)) {
            case Calendar.SUNDAY:
                Log.i("zachary", "周日");
                break;
            case Calendar.MONDAY:
                Log.i("zachary", "周一");
                break;
            case Calendar.TUESDAY:
                Log.i("zachary", "周二");
                break;
            case Calendar.WEDNESDAY:
                Log.i("zachary", "周三");
                break;
            case Calendar.THURSDAY:
                Log.i("zachary", "周四");
                break;
            case Calendar.FRIDAY:
                Log.i("zachary", "周五");
                break;
            case Calendar.SATURDAY:
                Log.i("zachary", "周六");
                break;
            default:
                break;
        }
    }

获取时间

//获得几点,12小时制
c.get(Calendar.HOUR)

//需要区分是上午还是下午
if (c.get(Calendar.AM_PM) == Calendar.AM) {
    Log.i("MainActivityFilter", "现在是上午");
} else {
    Log.i("MainActivityFilter", "现在是下午");
}
//使用Calendar.AM和Calendar.PM来帮助判断是上午还是下午

//获取24小时制时间的方法
c.get(Calendar.HOUR_OF_DAY)

//获得现在是几分
c.get(Calendar.MINUTE)

//获得现在是几秒
c.get(Calendar.SECOND)

//获得现在是几毫秒
c.get(Calendar.MILLISECOND)

输出、转化、对比

//SimpleDateFormat来输出规范的字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
sdf.format(c.getTime())

//增加日期中的某个域的值,比如想获得明天的日期,就需要向DAY域加1
c.add(Calendar.DAY_OF_MONTH, 1);

//比较两个日期是否相等
private Calendar c = Calendar.getInstance();
private Calendar d = Calendar.getInstance();
c.equals(d)		//true
c.add(Calendar.YEAR, 1);
c.equals(d)		//false


private Calendar c = Calendar.getInstance();
private Calendar d = Calendar.getInstance();
d.add(Calendar.DAY_OF_MONTH, 1);
//比较两个日期哪个更靠后
d.after(c)
//比较两个日期哪个更靠前
c.before(d));


清空某一个域并用这个域最小的值代替
c.clear(Calendar.MONTH);
清空所有的域然后全部用最小的值代替
//1970.1.1 00.00
d.clear();

//获得Calendar对象的一个深拷贝,独立于拷贝对象
d = (Calendar) c.clone();
sdf.format(d.getTime())

//比较两个Calendar哪个在前哪个在后的方法
//c实例要靠前一些,返回-1,如果要靠后一些,返回1,如果相等,返回0
d = (Calendar) c.clone();
c.compareTo(d)

//将当前Calendar对象转换为Date对象
c.getDate()

//还有将Date对象设置给Calendar对象的方法
c.setDate(Date date)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值