首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 獲取當前年份的正確姿勢:Calendar 與 SimpleDateFormat 實戰

     編輯:程式設計疑難解答

Java 獲取當前年份的正確姿勢:Calendar 與 SimpleDateFormat 實戰

許多初學者會硬編碼年份(如 int year = 2016;),導致程式跨年失效。正確做法是動態獲取系統時間。

方案一:Calendar + SimpleDateFormat (Java 7 及之前通用)

import java.util.Calendar;
import java.text.SimpleDateFormat;

public class CurrentYear {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        String year = sdf.format(cal.getTime());
        System.out.println("當前年份: " + year); // 輸出如 2024
    }
}

關鍵點:Calendar.getInstance() 返回當前時區的日曆實例;getTime() 取得 Date 對象;SimpleDateFormat("yyyy") 只格式化年份。

方案二:Java 8+ 新時間 API (推薦)

import java.time.LocalDate;
import java.time.Year;

public class CurrentYearJava8 {
    public static void main(String[] args) {
        int year = LocalDate.now().getYear(); // 或 Year.now().getValue()
        System.out.println("當前年份: " + year);
    }
}

優勢:不可變、線程安全、API 直觀、無需格式化字符串解析。

常見錯誤避坑

  • 硬編碼年份:int year = 2016; 明年即失效。
  • Calendar.YEAR 常量誤用:cal.get(Calendar.YEAR) 才是正確取年份,cal.get(Calendar.YEAR) 返回 1(常量值),而 Calendar.YEAR 常量值為 1,易混淆。
  • SimpleDateFormat 線程不安全:多線程環境下請使用 ThreadLocal 或 Java 8 API。

採用動態獲取年份,程式即可長期正常運行無需維護。

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