首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java Date 類別完整指南:建立、格式化、解析與標準化輸出

     編輯:Java 相關知識

Date 類別演進

java.util.Date 自 JDK 1.0 起演進,早期僅提供取得/設定年月日方法,現已棄用並移至 Calendar。JDK 1.1 起,Date 成為長整數包裝類,封裝自 GMT 1970-01-01 00:00:00 起經過的毫秒數,以更好支援國際化格式。

建立日期物件

import java.util.Date;
public class DateExample1 {
    public static void main(String[] args) {
        Date date = new Date(); // 使用系統當前時間
        System.out.println(date.getTime()); // 輸出毫秒數
    }
}

無參建構子內部呼叫 System.currentTimeMillis()。範例輸出如 1001803809710 (對應 2001-09-29 18:50)。

自訂日期格式化

使用 java.text.SimpleDateFormat 及其父類 DateFormat:

import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample2 {
    public static void main(String[] args) {
        SimpleDateFormat fmt = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
        Date date = new Date();
        System.out.println(fmt.format(date)); // 輸出:星期六-九月-29-2001
    }
}

格式字串對照:EEEE=完整星期名、MMMM=完整月份名、dd=兩位數日期、yyyy=四位數年份。字元個數決定輸出長度(如 EE 輸出「週六」)。

解析字串為 Date 物件

import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample3 {
    public static void main(String[] args) {
        SimpleDateFormat fmt = new SimpleDateFormat("MM-dd-yyyy");
        String str = "9-29-2001";
        try {
            Date date = fmt.parse(str);
            System.out.println(date.getTime()); // 輸出:1001736000000
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

parse() 可能拋出 ParseException,需置於 try-catch 中。

標準日期時間格式化

DateFormat.getDateTimeInstance(int dateStyle, int timeStyle) 提供四種內建風格常數:

常數日期範例時間範例
SHORT9/29/018:44 PM
MEDIUMSep 29, 20018:44:45 PM
LONGSeptember 29, 20018:44:45 PM EDT
FULLSaturday, September 29, 20018:44:45 PM EDT
import java.text.DateFormat;
import java.util.Date;
public class DateExample4 {
    public static void main(String[] args) {
        Date date = new Date();
        DateFormat shortFmt = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
        DateFormat medFmt = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
        DateFormat longFmt = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
        DateFormat fullFmt = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
        System.out.println(shortFmt.format(date));
        System.out.println(medFmt.format(date));
        System.out.println(longFmt.format(date));
        System.out.println(fullFmt.format(date));
    }
}

輸出範例:

9/29/01 8:44 PM
Sep 29, 2001 8:44:45 PM
September 29, 2001 8:44:45 PM EDT
Saturday, September 29, 2001 8:44:45 PM EDT

兩個參數分別控制日期與時間風格,均為 int,建議使用 DateFormat 常數以提升可讀性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved