您的位置:首页 > 编程语言 > Java开发

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

2017-03-27 22:24 344 查看
包装类

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

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



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

将本类型和其他类型进行转换的方法

将字符串和本类型及包装类互相转换的方法

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

  常用的方法:

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: