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

  常用的方法:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM