Android之Calendar类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36347817/article/details/82492960

前两天,学习自定义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)

猜你喜欢

转载自blog.csdn.net/qq_36347817/article/details/82492960