1.date
1> Date的空参构造方法,其代表的是当前的时间节点
Date d1=new Date(); //在这里,使用的是date的空参构造方法,其中封装的是现在的具体时间 //直接对于d1进行打印,会直接显示出来现在的具体时间 //由此可以知道,在Date当中,已经是对于Tostring方法进行过了相应的重写,从而直接展示出来其中的具体内容,详细情况
2> 有关date当中存在的一些方法:
// 1:String getTime() System.out.println(d1.getTime()); //展示出来的是距离c语言出生的时候到现在已经是过去了多少毫秒 /* 2.void setTime(long num) 在其中需要输入一个long类型的数值,同时的,没有返回值 */ d1.setTime(0L); System.out.println(d1); //展示出来的是对于c语言出生到这个set所设定的过去了多长的时间 1000L就是对于起源时间过去了1秒 //这一点上,其实跟date的含参构造方法是一样的用途 Date d2 =new Date(0L); System.out.println(d2); //最终的结果也是一个相应的源时间节点
2.Simpledate(时间格式化)
1>空参的构造方法,使用默认的系统日期格式化
SimpleDateFormat simple =new SimpleDateFormat(); Date d1=new Date(); System.out.println(d1); //没有进行时间格式化的结果 Sun Nov 26 11:43:10 CST 2023 System.out.println(simple.format(d1)); //进行过时间格式化的结果 23-11-26 上午11:43
2>使用含参的构造方法
SimpleDateFormat simple1 =new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E a"); //对于时间格式化的具体内容,可以到相应的API文档当中进行寻找 //E代表星期,a代表的是上午下午还是晚上或者是凌晨的时间节点 Date d2 =new Date(); System.out.println(simple1.format(d2));
***将日期字符串转化成为相应的date,也可以使用simpleDateFormae的方法来进行完成
String date =in.next(); SimpleDateFormat simple2=new SimpleDateFormat("yyyy年MM月dd日"); Date parse = simple2.parse(date); System.out.println(simple2.format(parse));
3.Calender类
有关日历Calender的使用,以及其中含有的一些方法
Calender本身是一个抽象类,所以在创建的时候相当于使用了一个多态的存在
使用父类的同时,对于子类当中Calender的getIntstance方法进行调用
方法:
1:static int get(int num): 获取Calender当中具体内容的方法,返回值为int类型
tips:在输入其中的数字的时候,建议直接调用Calender当中的静态方法,而不是记数字
方式:使用Calender当中的静态方法,Calender.需要获取的具体内容等等
public static void getmethod(){ Calendar c =Calendar.getInstance(); System.out.println(c); //Calender本身含有许多的数值,其中包括了年月日以及星期等等,如果需要使用这些数据,那么就要对其中具体的内容进行调用 int YEAR = c.get(Calendar.YEAR); System.out.println(YEAR); //获取年份 int MOUTH = c.get(Calendar.MONTH); System.out.println(MOUTH+1); //获取月份 //需要注意的一点是,在获取月份的时候,最开始的一月,是从0开始进行数的,所以需要在结果的时候加1; int WEEKDATE = c.get(Calendar.DAY_OF_WEEK); char[] weekindex ={' ','日','一','二','三','四','五','六',}; //根据相应的索引来寻找对应的星期 //同时,要注意的一点是,数组当中是从0开始进行数的,当时在星期数中是只有从1开始进行数数的,所以应当让第一个索引位置的数直接是一个空的字符 System.out.println(weekindex[WEEKDATE]); tips: 在外国人眼中,每周的第一天并不是周一,而是周日 排序: 日 一 二 三 四 五 六 1 2 3 4 5 6 7 对此,我们可以采用数组的方式,让其中的数字转变成为相应的星期天数
2:static void set(Calender ,int num)
输入自己需要进行修改的具体内容,年,或者月日等等(都需要调用Calender当中的方法)
public static void setmethod(){ Calendar x =Calendar.getInstance(); x.set(Calendar.YEAR,2050); int YEAR = x.get(Calendar.YEAR); System.out.println(YEAR); //指定需要进行修改的数值,可以是年月日也可以是一个星期 //结果:2050 x.set(2050,3,2); //既可以修改制订的一个数值,也可以对于全部的值进行修改,年月日等等 System.out.println(x.get(Calendar.YEAR)+" "+x.get(Calendar.MONTH)+" "+x.get(Calendar.DAY_OF_MONTH)); }
另一方面,我们也可以使用一次性修改全部的内容
static void set(year,mouth,day),也可以修改具体的时间,时,分等等
3:static void add(Calender ,int num)
输入自己具体需要进行增加或者减去的日期,后面输入需要增加多少
public static void addmethod(){ Calendar c=Calendar.getInstance(); c.add(Calendar.YEAR,1); int addYEAR = c.get(Calendar.YEAR); //对于自己需要进行修改的值就行增添或者是减少,并且跟set方法是一样的,没有任何的返回值(void) System.out.println(addYEAR); }
类型转化: 有关对于Calender以及Date之间的相互转化 从Date-->Calender static void setTime(Date date) 能够将相应的日期类型date直接转化成为Calender的类型
test1:
//输入一个日期字符串,并求出其是这一年的第几天 Scanner in=new Scanner(System.in); String x =in.nextLine(); SimpleDateFormat simple =new SimpleDateFormat("yyyy-MM-dd"); Date parse = simple.parse(x); Calendar y =Calendar.getInstance(); //能够将date类型转换成为一个Calender的类型 y.setTime(parse); y.add(Calendar.MONTH,1); System.out.println(y.get(Calendar.DAY_OF_YEAR));
test2:
//课堂检测:判断2025年3月1日是否是疯狂星期四 Calendar c = Calendar.getInstance(); //需要注意的一点,其中的月份,是从0开始当作是第一个月的,所以在这里的三月实际上应该是用 2 来进行替换 c.set(2050, 2, 1); int Weekdate = c.get(Calendar.DAY_OF_WEEK); char[] Weekindex = {' ', '日', '一', '二', '三', '四', '五', '六' }; if (Weekindex[Weekdate] == '四') { System.out.println("是疯狂星期四"); } else { System.out.println("不是疯狂星期四"); } }