Date、DateFormat和Calendar类及其方法

仅供个人学习,如有侵权请联系删除。       

 Date类的概述是util包下的,不能导入sql包的
            * 类 Date 表示特定的瞬间,精确到毫秒。 
        构造方法
            * public Date()            //获得当前时间对象
            * public Date(long date)        //获得距离1970年1月1日00:00:00date毫秒的时间对象  
        成员方法
            * public long getTime()            //返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数。
            * public void setTime(long time)            // 设置此Date对象,以表示1970年1月1日00:00:00GMT以后time毫秒的时间点。

	public static void main(String[] args) {
		//demo1();
		//demo2();
		//demo3();
	}

	private static void demo3() {
		Date d1 = new Date();	
		d1.setTime(1000);		//设置毫秒值,改变时间对象
		System.out.println(d1);	
    //Thu Jan 01 08:00:01 CST 1970						
	}

	public static void demo2() {
		Date d1 = new Date();	
		System.out.println(d1.getTime());	//通过时间对象获取毫秒值
		System.out.println(System.currentTimeMillis());	
        //通过系统类的方法获取当前时间毫秒值
    /*
        1555417280220
        1555417280221
    */
	}

	public static void demo1() {
		Date d1 = new Date();		//如果没有传参数代表的是当前时间
		System.out.println(d1);
		
		Date d2 = new Date(0);		//如果构造方法中参数传为0代表的是1970年1月1日
		System.out.println(d2);		//通过毫秒值创建时间对象
    /*
        Tue Apr 16 20:15:29 CST 2019
        Thu Jan 01 08:00:00 CST 1970
    */
	}

 

         DateFormat类的概述
            * DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat
         SimpleDateFormat构造方法
            * public SimpleDateFormat()
            * public SimpleDateFormat(String pattern)
         成员方法
            * public final String format(Date date)                        //将一个Date格式化为日期/时间字符串。
            * public Date parse(String source)                            //从给定字符串的开始解析文本,以生成一个日期对象,详解代码。

public static void main(String[] args) throws ParseException {
		demo1();
		//demo2();
		//demo3();
		//demo4();
	}

	private static void demo4() throws ParseException {
		//将时间字符串转换成日期对象
		String str = "2000年08月08日 08:08:08";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		Date d = sdf.parse(str);	//将时间字符串转换成日期对象
		System.out.println(d);
		System.out.println(sdf.format(d));
       /*
        Tue Aug 08 08:08:08 CST 2000
        2000年08月08日 08:08:08
        */
	}

	public static void demo3() {
		Date d = new Date();		//获取当前时间对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        //创建日期格式化类对象
		System.out.println(sdf.format(d));		//将日期对象转换为字符串
	}

	public static void demo2() {
		Date d = new Date();	//获取当前时间对象
		SimpleDateFormat sdf = new SimpleDateFormat();	
        //创建日期格式化类对象
		System.out.println(sdf.format(d));	 			
        //19-4-16 下午8:39
	}

	public static void demo1() {
		//DateFormat df = new DateFormat();		
        //DateFormat是抽象类,不允许实例化
		//DateFormat df1 = new SimpleDateFormat();
		DateFormat df1 = DateFormat.getDateInstance();	
        //相当于父类引用指向子类对象,右边的方法返回一个子类对象
		Date d = new Date();
		System.out.println(d.getTime());
		System.out.println(df1.format(d));
        /*
            1555417520211
            2019-4-16
        */
	}

 

        Calendar类的概述
            * Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
        成员方法
            * public static Calendar getInstance()        //获得一个日历对象
            * public int get(int field)        //表示的是日历字段值,如Calendar.YEAR,Calendar.MONTH等

public static void main(String[] args) {
		Calendar c = Calendar.getInstance();		//父类引用指向子类对象,抽象类不能直接创建对象。
		//System.out.println(c);					//证明重写了toString方法打印了对象中所有的属性
		System.out.println(c.get(Calendar.YEAR));  	//通过字段获取对应的值
		System.out.println(c.get(Calendar.MONTH));	
		/*
		 * 月份与其他不同,在格里高利历和罗马儒略历中一年中的第一个月
		 * 是 JANUARY,它为 0;最后一个月取决于一年中的月份数。即得到的数是0~11,代表的是1~12月份。
		 * */
		System.out.println(c.get(Calendar.DAY_OF_MONTH));
	}

成员方法
            * public void add(int field,int amount)
            * public final void set(int field,int value)
            * public final void set(int year,int month,int date)

public static void main(String[] args) {
		//demo1();
		Calendar c = Calendar.getInstance();			//父类引用指向子类对象
		//c.add(Calendar.MONTH, -1);					//对指定的字段进行向前减或向后加
		//c.set(Calendar.YEAR, 2000);					//修改指定字段
		c.set(2000, 7, 8);
		
		System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1)) 
				+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
        //结果为2000年08月08日星期二
	}

	public static void demo1() {
		Calendar c = Calendar.getInstance();			//父类引用指向子类对象
		//System.out.println(c);
		System.out.println(c.get(Calendar.YEAR));		//通过字段获取年
		System.out.println(c.get(Calendar.MONTH));		//通过字段后期月,但是月是从0开始编号的
		System.out.println(c.get(Calendar.DAY_OF_MONTH));//月中的第几天
		System.out.println(c.get(Calendar.DAY_OF_WEEK));//周日是第一天,周六是最后一天
		
		System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1)) 
				+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
	}
	
	/*
	 * 将星期存储表中进行查表
	 * 1,返回值类型String
	 * 2,参数列表int week
	 */
	
	public static String getWeek(int week) {
    //    get得到的数中,1-7分别代表周日到周六。
		String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		
		return arr[week];
	}
	
	/*
	 * 如果是个数数字前面补0
	 * 1,返回值类型String类型
	 * 2,参数列表,int num
	 */
	public static String getNum(int num) {
		/*if(num > 9) {
			return "" + num;
		}else {
			return "0" + num;
		}*/
		return num > 9 ? "" + num : "0" + num;
	}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值