Java常用日期操作

java.util.Date与java.text.SimpleDateFormat

格式化日期

		Date date = new Date();
		// 使用指定的格式格式化日期
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println(sdf.format(date));


获取当前时间日期对象

    /**
     * 构建一个日期对象,默认为当前系统时间
     */
    public Date() {
        this(System.currentTimeMillis());
    }


获取指定时间的日期对象

    /**
     * 构建一个日期对象,并初始化它所代表的自1970年1月1日以来的时间毫秒数
     */
    public Date(long date) {
        fastTime = date;
    }


获取时间毫秒数

    /**
     * 获取自1970年1月1日开始至当前Date对象设定的时间的毫秒数
     */
    public long getTime() {
        return getTimeImpl();
    }


比较日期

    /**
     * 检查当前日期是否在指定日期之前
     */
    public boolean before(Date when) {
        return getMillisOf(this) < getMillisOf(when);
    }

    /**
     * 检查当前日期是否在指定日期之后
     */
    public boolean after(Date when) {
        return getMillisOf(this) > getMillisOf(when);
    }


java.util.Calendar

获取年份、打印月份和星期

		String[] months = new String[] { "一月", "二月", "三月", "四月", "五月", "六月",
				"七月", "八月", "九月", "十月", "十一月", "十二月" };
		String[] week = new String[] {null, "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
		Calendar c = Calendar.getInstance();
		// 获取年份
		int year = c.get(Calendar.YEAR);
		// 获取月份,此月份从0开始(0-11),0表示一月;如果要以数字表示月份,那么+1
		int month = c.get(Calendar.MONTH);
		// 获取当前日期
		int day = c.get(Calendar.DAY_OF_MONTH);
		// 获取星期(1-7,1:星期日,7:星期六)
		int dayWeek = c.get(Calendar.DAY_OF_WEEK);
		
		
		System.out.println(months[month]);
		System.out.println(week[dayWeek]);

设置日期

//		c.set(年份, 月份, 日期),月份从0开始,0表示一月
		c.set(2013, 2, 12);

单个属性设置,如设置月份为下个月

		c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1);

Calendar类不能通过new创建类实例,类似于单例模式获取一个对象,但并非单例模式

获取Date对象

    /**
     * 返回一个时间毫秒数相等的Date实例
     */
    public final Date getTime() {
        return new Date(getTimeInMillis());
    }

设置一个Date对象改变Calendar实例的值

    /**
     * 设置时间日期
     */
    public final void setTime(Date date) {
        setTimeInMillis(date.getTime());
    }

获取时间毫秒数

    /**
     * 返回这个日历的毫秒数
     */
    public long getTimeInMillis() {
        if (!isTimeSet) {
            updateTime();
        }
        return time;
    }

设置时间,作用与setTime类似,setTime通过Date对象设置,这里直接设置时间毫秒数

    /**
     * 设置这个实例的时间毫秒数为指定的millis
     */
    public void setTimeInMillis(long millis) {
        // If we don't need to recalculate the calendar field values,
        // do nothing.
        if (time == millis && isTimeSet && areFieldsSet && areAllFieldsSet
            && (zone instanceof ZoneInfo) && !((ZoneInfo)zone).isDirty()) {
            return;
        }
        time = millis;
        isTimeSet = true;
        areFieldsSet = false;
        computeFields();
        areAllFieldsSet = areFieldsSet = true;
    }

获取指定属性的值

    public int get(int field)
    {
        complete();
        return internalGet(field);
    }

设置指定属性的值

    public void set(int field, int value)
    {
        // If the fields are partially normalized, calculate all the
        // fields before changing any fields.
        if (areFieldsSet && !areAllFieldsSet) {
            computeFields();
        }
        internalSet(field, value);
        isTimeSet = false;
        areFieldsSet = false;
        isSet[field] = true;
        stamp[field] = nextStamp++;
        if (nextStamp == Integer.MAX_VALUE) {
            adjustStamp();
        }
    }

日期比较

    /**
     * 检查当前日期是否在指定日期之前
     */
    public boolean before(Object when) {
        return when instanceof Calendar
            && compareTo((Calendar)when) < 0;
    }
    /**
     * 检查当前日期是否在指定日期之后
     */
    public boolean after(Object when) {
        return when instanceof Calendar
            && compareTo((Calendar)when) > 0;
    }







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值