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

Java 中 Date 與 String 相互轉換完全指南

     編輯:Java 綜合教學

Java Date 與 String 相互轉換實戰

在 Java 開發中,日期時間與字符串的轉換是高頻操作。SimpleDateFormat 是傳統方案的核心工具類,但需注意其非線程安全特性。本文通過完整示例演示格式化、解析與比較操作。

核心代碼示例

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest {
    public static void main(String[] args) throws ParseException {
        // 1. Date -> String
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 注意:大寫 SS 為毫秒,小寫 ss 為秒
        String dateStr = sdf.format(now);
        System.out.println("格式化後:" + dateStr);

        // 2. String -> Date
        String input = "2016-11-01 13:10:12";
        Date parsed = sdf.parse(input);
        System.out.println("解析後:" + parsed);

        // 3. 日期比較
        int cmp = now.compareTo(parsed);
        System.out.println("比較結果:" + cmp + " (大於0表示now較晚)");
    }
}

關鍵點提示

  • 模式字母:yyyy年、MM月、dd日、HH24小時、mm分、ss秒、SSS毫秒。
  • 線程安全:SimpleDateFormat 非線程安全,多線程環境下請使用 ThreadLocal 或 Java 8+ 的 DateTimeFormatter(不可變、線程安全)。
  • 異常處理:parse() 拋出 ParseException,需捕獲或拋出。
  • 比較方法:compareTo()、before()、after()、equals() 均可用於日期比較。

現代替代方案(Java 8+)

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime ldt = LocalDateTime.now();
String str = ldt.format(fmt);
LocalDateTime parsed = LocalDateTime.parse(str, fmt);

建議新項目優先使用 java.time 包,避免舊 API 的諸多坑點。

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