javacalendar(java 中Calendar.getInstance() 实现的是什么)
大家好,关于javacalendar很多朋友都还不太明白,今天小编就来为大家分享关于java 中Calendar.getInstance() 实现的是什么的知识,希望对各位有所帮助!
java Date Calendar 区别
JAVA中 Date和 Calendar区别在于:
Date用于记录某一个含日期的、精确到毫秒的时间。重点在代表一刹那的时间本身。
Calendar用于将某一日期放到历法中的互动——时间和年、月、日、星期、上午、下午、夏令时等这些历法规定互相作用关系和互动。Calendar本身代表公历的一个简化缩水版,姑且叫“计算机历”。完整的公历是格里高利历,Java SE中以GregorianCalendar类来提供相关的历法功能。
Java中日历类(CalendarClass)的用途
Java中日历类(Calendar类)的用途如下:
Calendar类的静态方法getInstance()可以初始化一个日历对象:Calendar now= Calendar.getInstance();
可以使用下面三个方法把日历定到任何一个时间:
set(intyear,intmonth,intdate);
set(intyear,intmonth,intdate,inthour,intminute);
set(intyear,intmonth,intdate,inthour,intminute,intsecond);
如果想获得年份、月份、小时等信息可以使用:
Now.get(Calendar.Month);//这样的方法0表示一月,1表示二月
get(Calendar.DAY_OF_MONTH);//获得这个月的第几天
get(Calendar.DAY_OF_WEEK);//获得这个星期的第几天
get(Calendar.DAY_OF_YEAR);//获得这个年的第几天
getTimeMillis();//获得当前时间的毫秒表示
1.计算某一月份的最大天数
Calendartime=Calendar.getInstance();
time.clear();
time.set(Calendar.YEAR,year);
time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0
intday=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数
注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间
2.Calendar和Date的转化
(1) Calendar转化为Date
Calendarcal=Calendar.getInstance();
Datedate=cal.getTime();
(2) Date转化为Calendar
Datedate=newDate();
Calendarcal=Calendar.getInstance();
cal.setTime(date);
3.格式化输出日期时间
Datedate=newDate();
SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");
System.out.println(df.format(date));
4.计算相隔天数的方法
publicintgetDaysBetween(Calendard1,Calendard2){
if(d1.after(d2)){//swapdatessothatd1isstartandd2isend
java.util.Calendarswap=d1;
d1=d2;
d2=swap;
}
intdays=d2.get(Calendar.DAY_OF_YEAR)-d1.get(Calendar.DAY_OF_YEAR);
inty2=d2.get(Calendar.YEAR);
if(d1.get(Calendar.YEAR)!=y2){
d1=(Calendar)d1.clone();
do{
days+=d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到当年的实际天数
d1.add(Calendar.YEAR,1);
}while(d1.get(Calendar.YEAR)!=y2);
}
returndays;
}
java calendar.month有什么用
package pack.java.calendar.demo;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class CalendarDemo{
private static SimpleDateFormat date_format= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
public static void main(String[] args){
//获取calendar实例;
Calendar calendar= Calendar.getInstance();
//判断calendar是不是GregorianCalendar类的实例;
if(calendar instanceof GregorianCalendar){
System.out.println("属于GregorianCalendar类的实例!");
}
//从calendar对象中获得date对象,当前时间;
Date dates= calendar.getTime();
//格式化时间;
String date_str= date_format.format(dates);
System.out.println(date_str);
//设置月份05;代表日历的月份6月,因为月份从0开始。
calendar.set(Calendar.MONTH, 05);
int months= calendar.get(Calendar.MONTH);
System.out.println(months);//输出05;
//设置日期为2011-07-24 09:59:50
calendar.set(2011, 06, 24, 9, 59, 50);
String getDate= date_format.format(calendar.getTime());
System.out.println(getDate);//输出2011-07-24 09:59:50;
//比较日前大小;
if(new Date().getTime()> calendar.getTimeInMillis()){
System.out.println("当前日期在后!");
}else{
System.out.println("当前日期在前!");
}
//设置当前时间为:2011-07-24 11:06:00
calendar.setTime(new Date());
int year= calendar.get(Calendar.YEAR);//获取年;
int month= calendar.get(Calendar.MONTH);//获取月;
int date= calendar.get(Calendar.DATE);//获取天;
int hour= calendar.get(Calendar.HOUR);//获取小时;
int minute= calendar.get(Calendar.MINUTE);//获取分钟;
int second= calendar.get(Calendar.SECOND);//获取秒钟;
int hour_of_day= calendar.get(Calendar.HOUR_OF_DAY);//第几个小时,
int day_of_month= calendar.get(Calendar.DAY_OF_MONTH);//这天,在一个月内是第几天.
int day_of_week= calendar.get(Calendar.DAY_OF_WEEK);//这天,在一周内,是第几天.
int day_of_year= calendar.get(Calendar.DAY_OF_YEAR);//这天,在一年内,是第几天。
int week_of_year= calendar.get(Calendar.WEEK_OF_YEAR);//这周,在一年内是第几周;
int week_of_month= calendar.get(Calendar.WEEK_OF_MONTH);//这周,在这个月是第几周;以以星为标准;
int zone_offset= calendar.get(Calendar.ZONE_OFFSET);//获取时区;
int day_of_week_in_month= calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);//某月中第几周,按这个月1号算,1号起就是第1周,8号起就是第2周。以月份天数为标准
int r= calendar.get(Calendar.AM_PM);
if(r==calendar.AM){
System.out.println("现在是上午");
}
if(r==calendar.PM){
System.out.println("现在是下午");
}
System.out.println("==================================================");
System.out.println(year);
System.out.println(month);
System.out.println(date);
System.out.println(hour);
System.out.println(minute);
System.out.println(second);
System.out.println(hour_of_day);
System.out.println(day_of_month);
System.out.println(day_of_week);
System.out.println(day_of_year);
System.out.println(week_of_year);
System.out.println(week_of_month);
System.out.println(zone_offset);
System.out.println(day_of_week_in_month);
}
}
java 中Calendar.getInstance() 实现的是什么
java中calendar.getinstance()和new
date()的差别如下:
calendar.getinstance()是获取一个calendar对象并可以进行时间的计算,时区的指定
new
date()是创建了一个date对象,默认是utc格式的。
二者可以相互转化:
calendar
calendar
=
calendar.getinstance();
//
从一个
calendar
对象中获取
date
对象
date
date
=
calendar.gettime();
//
将
date
对象反应到一个
calendar
对象中,
//
calendar/gregoriancalendar
没有构造函数可以接受
date
对象
//
所以我们必需先获得一个实例,然后设置
date
对象
calendar.settime(date);
关于javacalendar到此分享完毕,希望能帮助到您。