• Java—包装类、Date和SimpleDateFormat、Calendar类


    • 包装类

      基本数据类型不能调用方法,功能简单,为了让基本数据类型也具备对象的特性,Java为每个基本数据类型提供了一个包装类,这样就可以像操作对象那样来操作基本数据类型。

      基本类型和包装类之间的对应关系:

      包装类主要提供了两大类方法:

    1. 将本类型和其他类型进行转换的方法
    2. 将字符串和本类型及包装类互相转换的方法

      以Integer包装类为例,介绍包装类的特性:

      Integer包装类的构造方法

      

    Integer包装类的常用方法

      

    •  基本类型和包装类之间的转换

        以Integer为例。JDK1.5引入自动装箱和拆箱的机制,使包装类和基本类型之间的转换更轻松了。

        1.装箱:把基本类型转换成包装类,使其具有对象的性质,分为自动装箱和手动装箱。

    int i = 3;//定义一个int基本类型
    Integer m = new Integer(5);//手动装箱
    Integer n = i;//自动装箱

        2.拆箱:把包装类对象转换成基本类型的值,分为手动拆箱和自动拆箱

    Integer m = new Integer(5);    
    int x = m.intValue();//手动拆箱
    int y = m;//自动拆箱
    • 基本类型转换为字符串类型

        1.使用包装类的toString()方法

        2.使用String类的valueOf()方法

        3.用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串

    int c = 12;
    String str1 = Integer.toString(c);
    String str2 = String.valueOf(c);
    String str3 = c + "";
    • 字符串转化成基本类型

        1.调用包装类的parseXxx静态方法

        2.调用包装类的valueOf 方法转换为基本类型的包装类,会自动拆箱

    String d = "13";
    int i1 = Integer.parseInt(d);
    int i2 = Integer.valueOf(d);
    •  使用Date和SimpleDateFormat类表示时间

       处理日期和时间的相关数据,我们可以使用java.util包中的Date类。使用Date类的默认无参构造方法创建出的对象表示当前时间。

      可以使用SimpleDateFormat类来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可以将文本转换为日期。

    package cn.test;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.text.ParseException;
    
    public class Demo {
    
        public static void main(String[] args) {
            Date d = new Date();
            System.out.println(d);
            
            //将日期转换为指定格式的文本
    SimpleDateFormat sdf
    = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String today = sdf.format(d); System.out.println(today); //将文本转换为日期
    String day
    = "2017年03月27日 16:02:30"; SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); try{ Date date = df.parse(day); System.out.println(date); } catch (ParseException e) { System.out.println(e.getMessage()); } } }

      运行结果:

      Mon Mar 27 16:14:58 CST 2017
      2017-03-27 16:14:58
      Mon Mar 27 16:02:30 CST 2017

      注意:调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,及ParseException,因此需要进行异常处理;使用Date类时需要导入java.util包,使用SimpleDateFormat时需要导入java.text包。

    • Calendar类

      Date类最主要的作用就是获取当前时间,同时这个类里面也具有设置时间以及一些其他功能,但由于类本身设计的问题,不建议使用,推荐使用Calendar类进行日期和时间的处理。

      java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

    package com.test;
    import java.util.Calendar;
    import java.util.Date;
    
    public class Demo {
        public static void main(String[] args) {
            Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH) + 1;
            int day = c.get(Calendar.DAY_OF_MONTH);
            int hour = c.get(Calendar.HOUR_OF_DAY);
            int minute =  c.get(Calendar.MINUTE);
            int second = c.get(Calendar.SECOND);
            System.out.println("现在的时间是:" + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
        }
    }

      Calendar 类提供了getTime()方法用来获取Date对象,完成Calendar和Date的转换,还可以通过getTimeInMillis()方法获取此Calendar的时间值,以毫秒没单位。

    package com.test;
    import java.util.Calendar;
    import java.util.Date;
    
    public class Demo {
        public static void main(String[] args) {
            Calendar c = Calendar.getInstance();
            Date date = c.getTime();
            Long time = c.getTimeInMillis();
            System.out.println(date);
            System.out.println(time);
        }
    }

      运行结果: 

      Mon Mar 27 22:02:55 CST 2017
      1490623375468

    •  Math类

      Math类位于java.lang包中,包含用户执行基本数学运算的方法,Math类的所有方法都是静态方法,所有可以直接使用类名.方法名,如:Math.round();

      常用的方法:

      

  • 相关阅读:
    [Android] Android 手机下 仿 今日头条 新闻客户端
    [Android] Android Error: Suspicious namespace and prefix combination [NamespaceTypo] when I try create Signed APK
    [Android] Android Build 时报错: java.io.IOException: Could not parse XML from android/accounts/annotations.xml
    Uva 10557 XYZZY
    Uva 705
    Uva532(三维搜索)
    Uva657
    B. Bear and Three Musketeers
    1092 回文字符串(51nod)
    1050 循环数组最大子段和
  • 原文地址:https://www.cnblogs.com/tianxintian22/p/6618722.html
Copyright © 2020-2023  润新知