javacalendar,java语言中的date类及方法的用法
一、java语言中的date类及方法的用法
一、Date类型的初始化
1、Date(intyear,intmonth,intdate);直接写入年份是得不到正确的结果的。因为java中Date是从1900年开始算的,所以前面的第一个参数只要填入从1900年后过了多少年就是你想要得到的年份。月需要减1,日可以直接插入。这种方法用的比较少,常用的是第二种方法。
2、这种方法是将一个符合特定格式,比如yyyy-MM-dd,的字符串转化成为Date类型的数据。首先,定义一个Date类型的对象Datedate=null;再定义一个String类型的符合格式的字符串StringdateStr="2010-9-10";把这个字符串进行拆分String[]dateDivide=dateStr.split("-");把年月日分别取出,赋给Calendar,用Calendar的getTime();取得日期再赋给date。
importjava.util.Calendar;
importjava.util.Date;
publicclassMain4{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
Datedate=null;
StringdateStr="2010-9-10";
String[]dateDivide=dateStr.split("-");
if(dateDivide.length==3){
intyear=Integer.parseInt(dateDivide[0].trim());//去掉空格
intmonth=Integer.parseInt(dateDivide[1].trim());
intday=Integer.parseInt(dateDivide[2].trim());
Calendarc=Calendar.getInstance();//获取一个日历实例
c.set(year,month-1,day);//设定日历的日期
date=c.getTime();
}
System.out.println(date);
}
}
二、Date类型的比较
Datea;
Dateb;
假设现在你已经实例化了a和b
a.after(b)返回一个boolean,如果a的时间在b之后(不包括等于)返回true
b.before(a)返回一个boolean,如果b的时间在a之前(不包括等于)返回true
a.equals(b)返回一个boolean,如果a的时间和b相等返回true
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
publicclassMain4{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//Datedate=null;
//StringdateStr="2010-9-10";
//String[]dateDivide=dateStr.split("-");
//if(dateDivide.length==3){
//intyear=Integer.parseInt(dateDivide[0].trim());//去掉空格
//intmonth=Integer.parseInt(dateDivide[1].trim());
//intday=Integer.parseInt(dateDivide[2].trim());
//Calendarc=Calendar.getInstance();//获取一个日历实例
//c.set(year,month-1,day);//设定日历的日期
//date=c.getTime();
//}
//System.out.println(date);
//Date类型常用的操作函数
//1.-----计算某一个月份的最大天数
Calendarcalendar=Calendar.getInstance();
//使用set方法之前必须先clear一下,否则很多信息会继承自系统当前时间
//calendar.clear();
//calendar.set(Calendar.YEAR,2018);
//calendar.set(Calendar.MONTH,3-1);
//intday=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
//2.------Calendar和Date的转化
//-----Calendar转化为Date--
Datedate=calendar.getTime();
System.out.println(date);//SatMar2411:39:55CST2018
//-----Date转化为Calendar--
Datedate1=newDate();
Calendarcalendar1=Calendar.getInstance();
calendar1.setTime(date1);
//3.----计算一年中的第几星期是几号
SimpleDateFormatdf=newSimpleDateFormat();
Calendarcalen=Calendar.getInstance();
calen.set(Calendar.YEAR,2018);
calen.set(Calendar.WEEK_OF_YEAR,4);
calen.set(Calendar.DAY_OF_WEEK,4);
System.out.println(df.format(calen.getTime()));
//add方法
SimpleDateFormatdff=newSimpleDateFormat("yyyy-MM-dd");
Calendarcalll=Calendar.getInstance();
calll.set(Calendar.YEAR,2018);
calll.set(Calendar.MONTH,4);
calll.set(Calendar.DAY_OF_MONTH,24);
calll.add(Calendar.DATE,-4);
Datedateee=calll.getTime();
System.out.println(dff.format(dateee));
calll.add(Calendar.DAY_OF_MONTH,-4);
//calll.add(Calendar.DATE,-4);相等
Datedatee1=calll.getTime();
System.out.println(dff.format(datee1));
}
}
二、java程序中计算日历中的day-1是什么意思
Calendar.get(Calendar.DAY_OF_WEEK)-1如果没记错sunday是0周一是1get(Calendar.DAY_OF_WEEK)对应的是1-7月份是从0开始的set(month,month-1,1);第一个应该是year第二个月第三个日
三、localdate和date的区别
localdate表示本地日期,是一个不含有时区信息的日期类,可以表示例如"2021-08-01"这样的日期。而date表示日期和时间,是一个包含有时区信息的日期类,可以表示例如"2021-08-0112:00:00"这样的日期和时间。