java API | Date | SimpleDateFormat | Calendar日期类

本文详细介绍了Java中日期和时间处理的三个核心类:Date、SimpleDateFormat和Calendar。演示了如何获取和设置日期时间,进行日期格式转换,以及使用Calendar进行日期操作。同时,提到了GregorianCalendar类的闰年判断方法。
摘要由CSDN通过智能技术生成

1.Date util 包类讲解。

 Date: 1.该类位于java.util包中,在sql包也存在。 
         2.父类:Object类 
         3.作用:描述时间
         4.如何根据提供的Date类来获取时间或者设置时间
            通过该类提供的构造函数及方法来实现

1.获取系统时间
        Date date = new Date();// util包
        Tue Nov 30 09:00:24 CST 2021
        System.out.println(date);  默认显示的风格:国外
        可以调用方法来显示常规时间
        2021-11-30 9:02:24
        System.out.println(date.toLocaleString());

         Date date = new Date();// util包
 常用的方法
		 获取当前的年份
		System.out.println(date.getYear() + 1900);
		 获取当前的月份
		System.out.println(date.getMonth() + 1);
		 获取当前的日
		System.out.println(date.getDate());
		 获取当前的小时
		System.out.println(date.getHours());
		 获取当前的分钟
		System.out.println(date.getMinutes());
         获取当前星期
        System.out.printin(date.getday());
		 获取当前的秒
		System.out.println(date.getSeconds());
		 获取当前的毫秒(距离1970年1月1日0:0:0之间的毫秒值)

		System.out.println(date.getTime());// 结果 long类型
		 2021-11-30 9:09:16
		 1638234556484

Date提供了一个可以传递毫秒值得构造函数

        Date d = new Date(1638234556484L);
        2021-11-30 9:09:16
        System.out.println(d.toLocaleString());

给年直接赋值

        Date d2 = new Date();
        d2.setYear(2022);
        System.out.println(d2.getYear());

2.SimpleDateFormat 日期格式转换类

需求:通过Date对象得到一个日期,显示为:2021年11月11日 12:12:12
         1.实例化Date对象
        Date myDate = new Date();
        2.SimpleDateFormat创建
        日期的规则制定:
        年份: yyyy
        月份: MM
        日:dd
        小时:hh
        分钟: mm
        秒: ss

        星期 EEEE
      
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        

     Date---->String

       Date myDate = new Date();
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        3.调用转换格式的方法
        String format = sdf.format(myDate);
        System.out.println(format);

     String---->Date

String str = "2021-11-11 12:20:20";
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			Date parse = sdf2.parse(str);  该方法会出现异常所以使用try解决异常才能运行程序
			System.out.println(parse.toLocaleString());
		} catch (ParseException e) {
			e.printStackTrace();
		}

 3.Calendar类:日历类,替代了Date类对象中常用的方法

Calendar c = Calendar.getInstance();因为这个类是静态类所以只等通过类里面的方法调用!!

System.out.println(c);--------也能获取一个非常长的系统时间值 在里面能找到比如时间 日期星期等等............

Calendar类的方法

        Calendar c = Calendar.getInstance();
        System.out.println(c.get(Calendar.YEAR));年
		System.out.println(c.get(Calendar.MONTH)+1);月
		System.out.println(c.get(Calendar.DATE));日
		System.out.println(c.get(Calendar.HOUR));小时
		System.out.println(c.get(Calendar.MINUTE));分钟
		System.out.println(c.get(Calendar.SECOND));秒
        System.out.println(c.get(Calendar.HOUR)); 12小时制的小时
        System.out.println(c.get(Calendar.HOUR_OF_DAY)); 24小时制的小时 
        systrm.out.println(c.get(Calendar.DAY_OF_DAY));星期几 
		System.out.println(c.getTimeInMillis());毫秒值

set方法 

        Calendar c = Calendar.getInstance();
        c.set(2000, 10-1, 20);定义中国格式 外国格式不用减1

		System.out.println(c.get(Calendar.YEAR));年
		System.out.println(c.get(Calendar.MONTH));月

add 方法根据第一个参数的类型  增加指定的年|月|日|....负数就是减

        Calendar c = Calendar.getInstance();
        c.add(Calendar.YEAR, -2);
		System.out.println(c.get(Calendar.YEAR));

Calendar 类的转换:

1.Calendar类型的日期----》String类型的日期

Calendar calendar = Calendar.getInstance();
		需求:先将日历类---Date
      方法一
		Date d = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str = sdf.format(d);
		System.out.println(str);
     
      方法二
		long timeInMillis = calendar.getTimeInMillis();
		Date d = new Date(timeInMillis);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str = sdf.format(d);
		System.out.println(str);

2.String类型的日期----》Calendar类型的日期

String da = "2021-10-10";
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
		try {
			Date d2 = sdf2.parse(da);--此方法会报异常必须用try包起来
			//实例化Calendar
			Calendar c2 = Calendar.getInstance();
			c2.setTime(d2);

			System.out.println(c2.get(Calendar.YEAR)+"年"+(c2.get(Calendar.MONTH)+1)+"月"+c2.get(Calendar.DATE)+"日");

		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

补加一条闰年的判断方法!!

GregorianCalendar类中 isLeapYear 方法

GregorianCalendar ii= new GregorianCalendar();实例化对象 才能调用方法

if(ii.isLeapYear(ye)) {返回的boolean  false不是闰年  true 是闰年
				System.out.println("你输入的"+ye+"是闰年");
				
			}else {
				System.out.println("你输入的"+ye+"是平年");
				
			}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值