java中的Calendar如何使用?

Python017

java中的Calendar如何使用?,第1张

package pack.java.calendar.demo \x0d\x0a \x0d\x0aimport java.text.SimpleDateFormat \x0d\x0aimport java.util.Calendar \x0d\x0aimport java.util.Date \x0d\x0aimport java.util.GregorianCalendar \x0d\x0a \x0d\x0apublic class CalendarDemo { \x0d\x0aprivate static SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss") \x0d\x0apublic static void main(String[] args) { \x0d\x0a \x0d\x0a//获取calendar实例 \x0d\x0aCalendar calendar = Calendar.getInstance() \x0d\x0a \x0d\x0a//判断calendar是不是GregorianCalendar类的实例 \x0d\x0aif(calendar instanceof GregorianCalendar){ \x0d\x0aSystem.out.println("属于GregorianCalendar类的实例!") \x0d\x0a} \x0d\x0a \x0d\x0a//从calendar对象中获得date对象,当前时间 \x0d\x0aDate dates = calendar.getTime() \x0d\x0a \x0d\x0a//格式化时间 \x0d\x0aString date_str= date_format.format(dates) \x0d\x0aSystem.out.println(date_str) \x0d\x0a \x0d\x0a//设置月份05;代表日历的月份6月,因为月份从0开始。 \x0d\x0acalendar.set(Calendar.MONTH, 05) \x0d\x0a \x0d\x0aint months = calendar.get(Calendar.MONTH) \x0d\x0aSystem.out.println(months) //输出05 \x0d\x0a \x0d\x0a//设置日期为2011-07-24 09:59:50 \x0d\x0acalendar.set(2011, 06, 24, 9, 59, 50)\x0d\x0aString getDate = date_format.format(calendar.getTime()) \x0d\x0aSystem.out.println(getDate) //输出2011-07-24 09:59:50 \x0d\x0a \x0d\x0a//比较日前大小 \x0d\x0aif(new Date().getTime() >calendar.getTimeInMillis()){ \x0d\x0aSystem.out.println("当前日期在后!") \x0d\x0a}else{ \x0d\x0aSystem.out.println("当前日期在前!") \x0d\x0a} \x0d\x0a \x0d\x0a//设置当前时间为:2011-07-24 11:06:00 \x0d\x0acalendar.setTime(new Date())\x0d\x0aint year = calendar.get(Calendar.YEAR) //获取年 \x0d\x0aint month = calendar.get(Calendar.MONTH) //获取月 \x0d\x0aint date = calendar.get(Calendar.DATE) //获取天 \x0d\x0aint hour = calendar.get(Calendar.HOUR) //获取小时 \x0d\x0aint minute = calendar.get(Calendar.MINUTE)//获取分钟 \x0d\x0aint second = calendar.get(Calendar.SECOND)//获取秒钟 \x0d\x0aint hour_of_day = calendar.get(Calendar.HOUR_OF_DAY) //第几个小时, \x0d\x0aint day_of_month = calendar.get(Calendar.DAY_OF_MONTH)//这天,在一个月内是第几天.\x0d\x0aint day_of_week = calendar.get(Calendar.DAY_OF_WEEK) //这天,在一周内,是第几天. \x0d\x0aint day_of_year = calendar.get(Calendar.DAY_OF_YEAR) //这天,在一年内,是第几天。 \x0d\x0aint week_of_year = calendar.get(Calendar.WEEK_OF_YEAR) //这周,在一年内是第几周 \x0d\x0aint week_of_month = calendar.get(Calendar.WEEK_OF_MONTH)//这周,在这个月是第几周以以星为标准; \x0d\x0aint zone_offset = calendar.get(Calendar.ZONE_OFFSET) //获取时区 \x0d\x0aint day_of_week_in_month = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH) //某月中第几周,按这个月1号算,1号起就是第1周,8号起就是第2周。以月份天数为标准\x0d\x0aint r = calendar.get(Calendar.AM_PM) \x0d\x0aif(r==calendar.AM){ \x0d\x0aSystem.out.println("现在是上午") \x0d\x0a} \x0d\x0a \x0d\x0aif(r==calendar.PM){ \x0d\x0aSystem.out.println("现在是下午") \x0d\x0a} \x0d\x0aSystem.out.println("==================================================") \x0d\x0aSystem.out.println(year) \x0d\x0aSystem.out.println(month) \x0d\x0aSystem.out.println(date) \x0d\x0aSystem.out.println(hour) \x0d\x0aSystem.out.println(minute) \x0d\x0aSystem.out.println(second) \x0d\x0aSystem.out.println(hour_of_day) \x0d\x0aSystem.out.println(day_of_month) \x0d\x0aSystem.out.println(day_of_week) \x0d\x0aSystem.out.println(day_of_year) \x0d\x0aSystem.out.println(week_of_year) \x0d\x0aSystem.out.println(week_of_month) \x0d\x0aSystem.out.println(zone_offset) \x0d\x0aSystem.out.println(day_of_week_in_month) \x0d\x0a} \x0d\x0a}

Java中日历类(Calendar类)的用途如下:

Calendar类的静态方法getInstance()可以初始化一个日历对象:Calendar now =         Calendar.getInstance()   

可以使用下面三个方法把日历定到任何一个时间:

     set(int year ,int month,int date)  

     set(int year ,int month,int date,int hour,int minute) 

     set(int year ,int month,int date,int hour,int minute,int second) 

如果想获得年份、月份、小时等信息可以使用:  

      Now.get(Calendar.Month)//这样的方法 0表示一月,1表示二月  

     get(Calendar.DAY_OF_MONTH)//获得这个月的第几天

     get(Calendar.DAY_OF_WEEK)//获得这个星期的第几天 

     get(Calendar.DAY_OF_YEAR)//获得这个年的第几天  

       getTimeMillis()//获得当前时间的毫秒表示

1.计算某一月份的最大天数

    Calendar time=Calendar.getInstance() 

    time.clear() 

    time.set(Calendar.YEAR,year) 

    time.set(Calendar.MONTH,i-1)//注意,Calendar对象默认一月为0             

    int day=time.getActualMaximum(Calendar.DAY_OF_MONTH)//本月份的天数

    注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间

    2.Calendar和Date的转化

    (1) Calendar转化为Date

    Calendar cal=Calendar.getInstance()

    Date date=cal.getTime()

    (2) Date转化为Calendar

    Date date=new Date()

    Calendar cal=Calendar.getInstance()

    cal.setTime(date)

    3.格式化输出日期时间

    Date date=new Date()

    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")

    System.out.println(df.format(date))

4.计算相隔天数的方法

    public int getDaysBetween (Calendar d1, Calendar d2){

      if (d1.after(d2)){  // swap dates so that d1 is start and d2 is end

           java.util.Calendar swap = d1

           d1 = d2

           d2 = swap

      }

      int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR)

      int y2 = 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)

      }

       return days

    }