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("不是疯狂星期四");
}
}