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();

  常用的方法:

  

 

posted @ 2017-03-27 22:24  tianxintian22  阅读(5016)  评论(0编辑  收藏  举报