Java API —— DateFormat類


1、DateFormat類概述        

  DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。        

  是抽象類,所以使用其子類SimpleDateFormat。   

2、SimpleDateFormat構造方法       

  public SimpleDateFormat():將一個 Date 格式化為日期/時間字符串。(默認模式)       

  public SimpleDateFormat(String pattern):用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormat。   

3、成員方法        

  public final String format(Date date):將一個 Date 格式化為日期/時間字符串。        

  public Date parse(String source):從給定字符串的開始解析文本,以生成一個日期。

String和Date的相互轉化理解
       
  舉例1:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
 * Date     --     String(格式化)
 *         public final String format(Date date)
 *
 * String -- Date(解析)
 *         public Date parse(String source)
 *
 * DateForamt:可以進行日期和字符串的格式化和解析,但是由於是抽象類,所以使用具體子類SimpleDateFormat。
 *
 * SimpleDateFormat的構造方法:
 *         SimpleDateFormat():默認模式
 *         SimpleDateFormat(String pattern):給定的模式
 *             這個模式字符串該如何寫呢?
 *             通過查看API,我們就找到了對應的模式
 *             年 y
 *             月 M
 *             日 d
 *             時 H
 *             分 m
 *             秒 s
 *
 *             2014年12月12日 12:12:12
 */
public class DateFormatDemo01 {
    public static void main(String[] args) throws ParseException {
        // Date -- String
        // 創建日期對象
        Date d = new Date();
        // 創建格式化對象
        // SimpleDateFormat sdf = new SimpleDateFormat();
        // 給定模式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
        // public final String format(Date date)
        String s = sdf.format(d);
        System.out.println(s);
        //String -- Date
        String str = "2008-08-08 12:12:12";
        //在把一個字符串解析為日期的時候,請注意格式必須和給定的字符串格式匹配
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf2.parse(str);
        System.out.println(date);
    }
}

  舉例2:工具類

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
    private DateUtil() {
    }
    /**
     * 這個方法的作用就是把日期轉成一個字符串
     *
     * @param d
     *            被轉換的日期對象
     * @param format
     *            傳遞過來的要被轉換的格式
     * @return 格式化后的字符串
     */
    public static String dateToString(Date d, String format) {
        // SimpleDateFormat sdf = new SimpleDateFormat(format);
        // return sdf.format(d);
        return new SimpleDateFormat(format).format(d);
    }
    /**
     * 這個方法的作用就是把一個字符串解析成一個日期對象
     *
     * @param s
     *            被解析的字符串
     * @param format
     *            傳遞過來的要被轉換的格式
     * @return 解析后的日期對象
     * @throws ParseException
     */
    public static Date stringToDate(String s, String format)
            throws ParseException {
        return new SimpleDateFormat(format).parse(s);
    }
}

測試類:

import java.text.ParseException;
import java.util.Date;
public class DateFormatDemo02 {
    public static void main(String[] args) throws ParseException {
        Date d = new Date();
        //yyyy-MM-dd HH:mm:ss
        String s = DateUtil.dateToString(d,"yyyy年MM月dd日 HH:mm:ss");
        System.out.println(s);
        String s2 = DateUtil.dateToString(d,"yyyy年MM月dd日");
        System.out.println(s2);
        String s3 = DateUtil.dateToString(d,"HH:mm:ss");
        System.out.println(s3);
        String str = "2015-12-6";
        Date dd = DateUtil.stringToDate(str,"yyyy-MM-dd");
        System.out.println(dd);
    }
}
輸出結果:
2015年12月06日 21:17:52
2015年12月06日
21:17:52
Sun Dec 06 00:00:00 CST 2015
 
    舉例3:算一下你來到這個世界多少天?
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/*
 * 算一下你來到這個世界多少天?
 *
 * 分析:
 *         A:鍵盤錄入你的出生的年月日
 *         B:把該字符串轉換為一個日期
 *         C:通過該日期得到一個毫秒值
 *         D:獲取當前時間的毫秒值
 *         E:用D-C得到一個毫秒值
 *         F:把E的毫秒值轉換為年
 *             /1000/60/60/24
 */
public class DateFormatDemo03 {
    public static void main(String[] args) throws ParseException {
        // 鍵盤錄入你的出生的年月日
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入你的出生年月日:");
        String line = sc.nextLine();
        // 把該字符串轉換為一個日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date d = sdf.parse(line);
        // 通過該日期得到一個毫秒值
        long myTime = d.getTime();
        // 獲取當前時間的毫秒值
        long cutTime = System.currentTimeMillis();
        // 用D-C得到一個毫秒值
        long time = cutTime - myTime;
        // 把E的毫秒值轉換為年
        long day = time / 1000 / 60 / 60 / 24;
        System.out.println("您來到這個世界:" + day + "天。");
    }
}

 

 


免責聲明!

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



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