如何在 Java 中顯示當前年份的最後兩位數字
瀏覽人數:66最近更新:
1. 概述
在許多應用程式中,我們可能只需要顯示當前年份的最後兩位數字,而不是完整的四位數字年份。在本教程中,我們將研究三種不同的方法來執行此操作:
- 使用帶有模運算的舊式
Calendar
類 - 利用
SimpleDateFormat
進行自動格式化 - 利用現代
java.time
API
2. 使用Calendar
和模數運算符
在我們開始測試我們的方法之前,我們定義一個常數來保存預期的兩位數年份格式:
String EXPECTED = Year.now().format(DateTimeFormatter.ofPattern("uu"));
這個常數保證每種方法都使用相同的參考值來比較。
此方法使用傳統的Calendar
API 來檢索當前年份,並應用模運算子來提取最後兩位數字:
@Test
public void whenUsingCalendarModulo_thenReturnsCorrectTwoDigitYear() {
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
int lastTwo = currentYear % 100;
String result = (lastTwo < 10) ? "0" + lastTwo : String.valueOf(lastTwo);
assertEquals(EXPECTED, result);
}
我們需要注意的是,這個解的缺點是當提取的數字小於10
,需要我們在前導0
中加入。
3.使用SimpleDateFormat
SimpleDateFormat
類別允許根據給定的模式格式化Date
。這裡,「 yy
」模式會自動將年份格式化為兩位數(必要時新增前導零):
@Test
public void whenUsingSimpleDateFormat_thenReturnsCorrectTwoDigitYear() {
DateFormat df = new SimpleDateFormat("yy");
String result = df.format(new Date());
assertEquals(EXPECTED, result);
}
SimpleDateFormat
方法透過自動加入前導零來簡化我們的程式碼,因此我們避免了額外的條件邏輯。
4.使用java.time
API
使用現代java.time
API,我們可以透過直接格式化當前年份來簡化日期和時間處理。我們利用Year
類別以及配置了「 uu
」模式的DateTimeFormatter
,以簡潔且線程安全的方式提供兩位數的年份:
@Test
public void whenUsingJavaTimeAPI_thenReturnsCorrectTwoDigitYear() {
String result = Year.now().format(DateTimeFormatter.ofPattern("uu"));
assertEquals(EXPECTED, result);
}
這種方法提高了可讀性,並且本質上是線程安全的,使其成為現代 Java 應用程式的理想選擇。
5. 結論
在本文中,我們研究了三種以 Java 顯示當前年份最後兩位數字的方法。
我們首先使用帶有模運算子的Calendar
API。這種方法效果很好,但需要我們為個位數的結果手動新增前導零。
接下來,我們使用SimpleDateFormat
,它透過自動用前導零格式化年份來簡化我們的程式碼。
最後,我們利用了現代java.time
API。這種方法提高了可讀性,確保了線程安全,並簡化了日期處理。
與往常一樣,原始碼可在 GitHub 上取得。
本作品係原創或者翻譯,採用《署名-非商業性使用-禁止演繹4.0國際》許可協議