Java中Calendar类tips

1. 使用Java中Calendar类获取月份,返回的月份会比当前月份小1。 这是因为月份是从0开始算的,最小月为0,最大月份为11 。

请看如下示例:

import java.util.Calendar;
import java.util.Date;

public class TestCalendar {

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        //输出当前日期
        System.out.println("date = " +  new Date());

        //获取本月
        int month = c.get(Calendar.MONTH);
        System.out.println("month = " + month);

        //获取实际的最小月份值
        int minMonth = c.getActualMinimum(Calendar.MONTH);
        //获取实际的最大月份值
        int maxMonth = c.getActualMaximum(Calendar.MONTH);
        System.out.println("minMonth = " + minMonth);
        System.out.println("maxMonth = " + maxMonth);
    }

}

运行结果为:

date = Wed Mar 28 15:12:42 CST 2018
month = 2
minMonth = 0
maxMonth = 11

Process finished with exit code 0

本月为3月(Mar),返回月份却为2。 所以今后使用Calendar类获取月份时,记得+1,返回的才是当前月份。


2. Calendar类中,每月的天和每周的天都是从1开始的。

import java.util.Calendar;
import java.util.Date;

public class TestCalendar {

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        //输出当前日期
        System.out.println("date = " +  new Date());

        int minDayOfMonth = c.getActualMinimum(Calendar.DAY_OF_MONTH);
        int maxDayOfMonth = c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("minDayOfMonth = " + minDayOfMonth);
        System.out.println("maxDayOfMonth = " + maxDayOfMonth);
        int minDayOfWeek = c.getActualMinimum(Calendar.DAY_OF_WEEK);
        int maxDayOfWeek = c.getActualMaximum(Calendar.DAY_OF_WEEK);
        System.out.println("minDayOfWeek = " + minDayOfWeek);
        System.out.println("maxDayOfWeek = " + maxDayOfWeek);
    }

}

输出结果:

date = Wed Mar 28 15:19:56 CST 2018
minDayOfMonth = 1
maxDayOfMonth = 31
minDayOfWeek = 1
maxDayOfWeek = 7

Process finished with exit code 0

3. 获取Calendar.DAY_OF_WEEK的值时,周日为1,周一为2,周二为3,周三为4,... ,周六为7 。

import java.util.Calendar;
import java.util.Date;

public class TestCalendar {

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        //输出当前日期
        System.out.println("date = " +  new Date());

        //获取当前日是本周的星期几
        int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
        System.out.println("dayOfWeek = " + dayOfWeek);

        //获取当前日是本月几号
        int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);
        System.out.println("dayOfMonth = " + dayOfMonth);

        //获取当前日是本月几号
        int date = c.get(Calendar.DATE);
        System.out.println("date = " + date);

    }

}

输出结果为:

date = Wed Mar 28 15:27:34 CST 2018
dayOfWeek = 4
dayOfMonth = 28
date = 28

Process finished with exit code 0

当前时间为周三(Wed),dayOfWeek却是4。 想要获取正确值,应该相应 -1。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值