Calendar类,基本类型包装类

Calendar类:

    Calendar类为抽象类,创建对象并非直接创建,而是通过静态方法创建。

               西方星期的开始为周日,中国为周一。在Calendar类中,月份的表示是以0-11代表1-12月(设置month需要-1)。日期是有大小关系的,时间靠后,时间越大

    重要的字段摘要:

static int DATE
          getset 的字段数字,指示一个月中的某天。
static int DAY_OF_WEEK
          getset 的字段数字,指示一个星期中的某天。
static int MILLISECOND
          getset 的字段数字,指示一秒中的毫秒。
static int MINUTE
          getset 的字段数字,指示一小时中的分钟。

构造方法:

protected Calendar()
          构造一个带有默认时区和语言环境的 Calendar。
protected Calendar(TimeZone zone, Locale aLocale)
          构造一个带有指定时区和语言环境的 Calendar。

静态方法:

      

      Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。CalendargetInstance 方法返回一个 Calendar 对象。

      获取日历类对象
                   Calendar c = Calendar.getInstance();
                   System.out.println(c.get(Calendar.DATE));

    常用方法:

       

          c.add(Calendar.DATE, 2);
                         System.out.println(c.get(Calendar.DATE));        返回给定日历字段的值
                         调用
                         get(c);
                         将日历类对象转为日期类对象
                         Date d=c.getTime();
                         System.out.println(d);
                         给日类类对象设置指定时间
                         c.set(2008, 8-1, 8);
                         get(c);

        

            获取字段
                               public static void get(Calendar c) {
                                 获取年份
                                int year = c.get(Calendar.YEAR);
                                获取月份
                                int month = c.get(Calendar.MONTH)+1;
                                获取日
                                int day = c.get(Calendar.DATE);
                              获取小时
                               int hour = c.get(Calendar.HOUR);
                              获取分
                               int min = c.get(Calendar.MINUTE);
                              获取秒
                              int sec = c.get(Calendar.SECOND);
                             获取星期
                              int week = c.get(Calendar.DAY_OF_WEEK);

        System.out.println("今天是" + year + "年" + month + "月" + day + "日" + hour + ":" + min + ":" + sec + "星期" + week);

         YEAR 年,MONTH 月,从0开始算起,最大11;0代表1月,11代表12月,  DATE 天,  HOUR 时,  MINUTE分, SECOND秒。

    练习:  

      package com.oracle.demo01;
      import java.text.ParseException;
      import java.util.Calendar;
      import java.util.Date;
      public class Zuoye1 {
         public static void main(String[] args) throws ParseException {
            //求出自己出生了多少天
            Calendar now=Calendar.getInstance();//现在的日期
            Calendar birthday=Calendar.getInstance();
            birthday.set(1995, 07, 06);//你的出生日期
            Long times=now.getTimeInMillis()- birthday.getTimeInMillis();//二者之间相差的毫秒数
            System.out.println("天数是"+times/(24*60*60*1000)+"天");//转化成天数
            //    求出今天距离2022年1月1日还有多少天
            Calendar birthday2=Calendar.getInstance();
            birthday2.set(2022, 01, 01);
            Long time2= birthday2.getTimeInMillis()-now.getTimeInMillis();//二者之间相差的毫秒数
           System.out.println("天数是"+time2/(24*60*60*1000)+"天");//转化成天数
          }
       }

 

 

用自己的格式写出现在符合中国习惯的时间  
public class Lianxi {

    public static void main(String[] args) {
        Calendar c=Calendar.getInstance();
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH)+1;
        int date=c.get(Calendar.DATE);
        int hour=c.get(Calendar.HOUR);
        int min=c.get(Calendar.MINUTE);
        int sec=c.get(Calendar.SECOND);
        int week=c.get(Calendar.DAY_OF_WEEK);
        String h,m,s,w=null;
        if(hour<10){
            h="0"+hour;
        }else{
            h=hour+"";
        }
        if(min<10){
            m="0"+min;
        }else{
            m=min+"";
        }
        if(sec<10){
            s="0"+sec;
        }else{
            s=sec+"";
        }
        switch(week){
        case 1:
            w="天";
            break;
        case 2:
            w="一";
            break;
        case 3:
            w="二";
            break;
        case 4:
            w="三";
            break;
        case 5:
            w="四";
            break;
        case 6:
            w="五";
            break;
        case 7:
            w="六";
            break;
            default:
                break;
                
        }
        System.out.println(year+"年"+month+"月"+date+"日"+h+":"+m+":"+s+"星期"+w);
    }

}

基本类型包装类:

      java将基本数据类型值封装成了对象,用于在基本数据和字符串之间进行转换。

      8种基本包装类:

      

       将字符串转为基本类型:

        

           int number=Integer.parseInt("2000");
                          System.out.println(number+2);
                          double money=Double.parseDouble("12.3");
                          System.out.println(money+2);

         将基本数据类型转换成字符串的3种方式:

                                       package com.oracle.demo01;
                                       public class Demo02 {
                                       public static void main(String[] args) {
                                       将基本数据类型转为字符串,第一种方式:
                                        String s1=123+"";
                                      System.out.println(s1+2);
                                      第二种方式:
                                       String s2=String.valueOf(12.3);
                                      System.out.println(s2+2);
                                     第三种方式:
                                      String s3=Integer.toString(456);
                                        System.out.println(s3+2);
                                       }
                                     }

      基本数据类型转为包装类:

               //第一种方式:构造方法
                     Integer i1=new Integer(12);
                     Integer i2=new Integer("45");
                    //包装类中的valueOf()方法;
                    Integer i3=Integer.valueOf(78);
                    Integer i4=Integer.valueOf("36");
                    再把包装类型转为基本数据类型:用包装类的intValue()方法:
                     int ii1=i1.intValue();
                          System.out.println(ii1+2);

    自动装箱和自动拆箱:  

            自动装箱  基本数据类型转为包装类型                    自动装箱必须在byte范围内,-127-127
               Integer i1=123; //    Integer i1=new Integer(123);
                 自动拆箱 包装类型转为基本数据类型
            int num=i1+3;      //  int num=i1.intValue()+3;
               System.out.println(num);

原文地址:https://www.cnblogs.com/maxuefeng/p/13793181.html