关于Date、SimpleDateFormat、Calendar类

目录

一、Date类

1.类

2.构造方法

3.Date类中的方法

4.Date类型与Long类型的相互转换

二、SimpleDateFormat类

1.定义

2.构造方法

3.主要实现的功能

三.Calendar类

1.概念

2.方法

3.举例


一、Date类

1.类

Date 表示特定的瞬间,精确到毫秒

2.构造方法

1)无参构造: Date date = new Date();

创建一个日期对象,包含了程序运行那一刻的时间。

分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)
2)有参构造: Date date = new Date( long date);

分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数也就是在历元年上 1970 年 1 月 1 日 00:00:00 增加对应的毫秒值

       public class Dome {
    public static void main(String[] args) throws ParseException {
        Date date=new Date();
        System.out.println(date.toString());
        System.out.println(date);
        System.out.println(date.getTime());
    }
}
/*Sat Nov 27 08:15:56 GMT+08:00 2021
  Sat Nov 27 08:15:56 GMT+08:00 2021
  输出结果都一样*/
 

常用方法:a.getTime();//获取一个毫秒值

返回值是一个long类型。

public class Dome {
    public static void main(String[] args) throws ParseException {
        Date date=new Date();
        System.out.println(date.getTime());
    }
}

3.Date类中的方法

1)getTime();      获取从历元年1970 年 1 月 1 日 00:00:00 到现在所间隔的毫秒值
2)setTime();      在历元年上 1970 年 1 月 1 日 00:00:00 增加对应的毫秒值
3)toString();      该类重写了toString方法,会打印出相对应格式的日期

import java.util.Date;
 
public class Test {
    public static void main(String[] args) {
        Date date = new Date();
        //获取从历元年1970 年 1 月 1 日 00:00:00 到现在所间隔的毫秒值
        long time = date.getTime();
        System.out.println(time);                  //1652172389909
 
        //获取从历元年1970 年 1 月 1 日 00:00:00 到现在所间隔的毫秒值
        long timeMillis = System.currentTimeMillis();       //该方法属于System类,功能是i相同的!
        System.out.println(timeMillis);            //1652172389909
 
        //在历元年上 1970 年 1 月 1 日 00:00:00 增加对应的毫秒值
        date.setTime(1000 * 60 * 60 * 24);
        System.out.println(date);                  //Fri Jan 02 08:00:00 CST 1970
 
        System.out.println(date.toString());       //Fri Jan 02 08:00:00 CST 1970
 
    }
}

4.Date类型与Long类型的相互转换

Date类型转换为Long类型(用getTime();)

    Date date = new Date();    

    long time = date.getTime();

 Long类型转换为Date类型(用setTime();)

1)Date date  = new Date(long time);
2)Date date = new Date();     date.setTime(long time);


        //Date~~~~long
        Date date = new Date();
        long time = date.getTime();
        System.out.println(time);         //1652172898683
 
        //long~~~~Date
        long num = 1000 * 60 * 60 * 24;
        Date date1 = new Date(num);
        System.out.println(date1);        //Fri Jan 02 08:00:00 CST 1970
        
        Date date2 = new Date();
        date2.setTime(num);
        System.out.println(date2);        //Fri Jan 02 08:00:00 CST 1970
    }
}

二、SimpleDateFormat类

1.定义

是一个抽象类,构造方法接受一个字符串的参数,表示它当前的日期格式。主要用于格式化日期Date类为字符串将日期格式的字符串转换成Date类

格式化指的是将储存日期的类转化为字符串记录的日期的形式

(格式化日期)

2.构造方法

1)无参构造: SimpleDateFormat simpleDateFormat = new SimpleDateFormat();  

         没有指定格式,按照默认格式输出.
2)有参构造: SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("放入时间格式 ");          按照指定格式输出.

注:yyyy表示年 / MM表示月 / dd表示天 /hh表示1~12小时制(1-12). / HH表示24小时制(0-23). / mm表示分 / ss表示秒 / S表示毫秒 / E表示星期 / D表示一年中的第几天 / F表示一月中的第几个星期(会把这个月总共过的天数除以7). / w表示一年中的第几个星期 / W表示一月中的第几星期(会根据实际情况来算) / a表示上下午标识 / k表示和HH差不多,表示一天24小时制(1-24). / K表示和hh差不多,表示一天12小时制(0-11). / z表示表示时区

3.主要实现的功能

1)将字符串日期转换为Date类

String a="2022-11-27";

SimpleDateFormat d=new SimpleDateformat("yyyy-MM-dd");//创建该类实例对象用以调用方法

Date date=d.parse(s);

2)将Date类转换为字符串日期

SimpleDateFormat d=new SimpleDateFormat("yyyy-MM-dd");

Date e=new Date();

String s=d.format(e);

三.Calendar类

1.概念

Calendar 是一个抽象类, 无法通过直接实例化得到对象,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象.它其中包含了很多这样的特定瞬间的日历字段:YEAR、MONTH、DAY_OF_MONTH、HOUR,同时也为这些日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法.一般与Date类配合起来一块使用

2.方法

1)getInstance();   使用默认时区和语言环境获得一个日历对象
2)get(int field);    获得给定日历字段对应的值 field通过Calendar提供的字段来拿
3)add(int field,int amount);    根据日历的规则,为给定的日历字段添加或减去指定的时间量
4)set(int year,int month,int date);   设置日历时间 年月日

3.举例

1)练习

import java.util.Calendar;
import java.util.Date;
 
public class CalendarTest03 {
    public static void main(String[] args) {
        //CaLendar的 getInstance 方法返回一个 CaLendar 对象
        Calendar calendar=Calendar.getInstance();
        //获取当前时间
        Date time = calendar.getTime();
        System.out.println(time);
 
        //可以获取当前时间任何你想要获得的信息
        int year=calendar.get(Calendar.YEAR);//获取当前时间的年份
        System.out.println("年份:"+year);
        int month=calendar.get(Calendar.MONTH);
        System.out.println("月份:"+month+1);
        int dayofYear=calendar.get(Calendar.DAY_OF_YEAR);
        System.out.println("这年第"+dayofYear);
        // CaLendar 可以通过 get方法指定 字段值来获取当前时间的一些信息
 
        System.out.println("--------------------------------- ");
 
        //指定年月日、日分秒月份0-11表示1-12月
        calendar.set(2022,12,25,23,59,60) ;
        //获取指定的时间
        Date date1=calendar.getTime();
        System.out.println(date1);
 
    }
}

2)键盘录入任意一个年份,获取任意一年的二月有多少天.拿Calander类面向对象来完成.

public class  Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份");
        int year = sc.nextInt();
        Calendar instance = Calendar.getInstance();
 
        //设置到一年的3月1号
        instance.set(year, 2, 1);
 
        //减去一天,取那个天数就是二月份的天数
        instance.add(Calendar.DAY_OF_MONTH, -1);
        int day = instance.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值