Calendar与Date用法示例

一.date用法

import java.util.Date;
/*
 * Date :java.util.Date
 * DateFormat
 * Calendar
 * 
 * 构造方法
 * Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
 * Date(long date)  分配 Date 对象并初始化此对象,
 * 以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
 * 
 * 方法
 * boolean    after(Date when) 
          测试此日期是否在指定日期之后。
   boolean    before(Date when) 
          测试此日期是否在指定日期之前。
   int    compareTo(Date anotherDate) 
          比较两个日期的顺序。
   boolean    equals(Object obj) 
          比较两个日期的相等性。
   long    getTime() 
          返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
   void    setTime(long time) 
          设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
 * */
public class Demo1 {

    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date);//Fri Aug 11 15:39:07 CST 2017
        Date d = new Date(1000);
        System.out.println(d);//Thu Jan 01 08:00:01 CST 1970
        
        System.out.println(date.after(d));//date在d之后,返回true
        System.out.println(date.before(d));//false 2017-8-9 2017-8-10
        System.out.println(date.compareTo(d));//1  此对象>参数对象:返回正数  晚<->大
        System.out.println(d.compareTo(date));//-1
        
        System.out.println(date.getTime());//date 距离1970的总毫秒数
        System.out.println(d.getTime());
        
        date.setTime(2000);
        d.setTime(2000);
        
        System.out.println(date);
        System.out.println(d);
        System.out.println(date.equals(d));//date重写了equals方法,底层依赖于getTime()方法
        
        
    }

}

二.Calendar用法

import java.util.Calendar;

/*
 * Calendar 类是一个抽象类 日历
 *
 *  static Calendar    getInstance() 
          使用默认时区和语言环境获得一个日历。
    
    void     set(int year, int month, int date) 
          设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
    void     set(int field, int value) 
          将给定的日历字段设置为给定值。
    int    get(int field) 
          返回给定日历字段的值。       
    int    getActualMaximum(int field) 
          给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。
    Date     getTime() 
          返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
    void     setTime(Date date) 
          使用给定的 Date 设置此 Calendar 的时间。
              
 abstract  void    add(int field, int amount) 
          根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  boolean    after(Object when) 
          判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
 boolean    before(Object when) 
          判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。
     int    compareTo(Calendar anotherCalendar) 
          比较两个 Calendar 对象表示的时间值(从历元至现在的毫秒偏移量)。
 * */
public class Demo3 {

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        // int    get(int field) 返回给定日历字段的值。   
        System.out.println(c);
        printCal(c);
        System.out.println(c.get(Calendar.DAY_OF_WEEK));//1:星期天 2:周一 6:周五 7 :周六
        if(c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY ) {
            System.out.println("星期天");
        }else {
            System.out.println("星期" + (c.get(Calendar.DAY_OF_WEEK)-1));
        }
        System.out.println("--------");
        c.set(2015, 9, 1);//2015-10-15 设置-1设置
        printCal(c);
        System.out.println("-------");
        c.set(Calendar.YEAR, 2012);
        c.set(Calendar.MONTH, 2);//3
        printCal(c);
        System.out.println("-------");
        // abstract  void    add(int field, int amount)  根据日历的规则,为给定的日历字段添加或减去指定的时间量。
        //c.add(Calendar.DAY_OF_MONTH, -1);
        c.add(Calendar.MONTH, -3);
        printCal(c);

    }

    public static void printCal(Calendar c) {
        System.out.println(c.get(Calendar.YEAR));//1--year
        System.out.println(c.get(Calendar.MONTH) + 1);//月份从0开始
        System.out.println(c.get(Calendar.DAY_OF_MONTH));
        System.out.println(c.get(Calendar.HOUR_OF_DAY));
        System.out.println(c.get(Calendar.MINUTE));
        System.out.println(c.get(Calendar.SECOND));
    }

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值