Java 中 12 小時時間到 24 小時時間的轉換
1. 概述
兩種不同時間格式之間的轉換是一項常見的編程任務。 Java 提供了用於時間操作的標準 API。
在本教程中,我們將探討如何使用日期時間 API 和舊版日期 API 將 12 小時時間格式轉換為 24 小時時間格式。
2. 使用日期時間API
Java 8 中引入的 Date Time API 提供了一個使用不同模式格式化時間的類。 12小時制和24小時制都有不同的表示方式。
以下是使用 Date Time API 將 12 小時時間轉換為 24 小時時間的示例:
@Test
void givenTimeInTwelveHours_whenConvertingToTwentyHoursWithDateTimeFormatter_thenConverted() throws ParseException {
String time = LocalTime.parse("06:00 PM", DateTimeFormatter.ofPattern("hh:mm a", Locale.US))
.format(DateTimeFormatter.ofPattern("HH:mm"));
assertEquals("18:00", time);
}
在上面的代碼中,我們通過調用LocalTime
類的parse()
方法將 12 小時時間字符串解析為LocalTime
對象。
parse()
方法採用兩個參數 - 要解析的字符串和指定字符串格式的DateTimeFormatter
。
接下來,我們通過調用 DateTimeFormatter 上的ofPattern()
方法將時間格式化為 12 小時格式DateTimeFormatter.
12 小時時間的格式是“ hh:mm a
“ 。
此外,我們通過對解析的時間調用format()
方法並將模式設置為“ HH:mm
”(表示 24 小時時間格式),將 12 小時時間轉換為 24 小時時間。
3. 使用舊版日期 API
簡而言之,我們可以將SimpleDateFormat
與舊版 Date API 結合使用,將 12 小時時間轉換為 24 小時時間。
要使用舊版 Date API,我們將字符串解析為 12 小時時間格式的Date
類型:
@Test
public void givenTimeInTwelveHours_whenConvertingToTwentyHours_thenConverted() throws ParseException {
SimpleDateFormat displayFormat = new SimpleDateFormat("HH:mm");
SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm a");
Date date = parseFormat.parse("06:00 PM");
assertEquals("18:00", displayFormat.format(date));
}
在這裡,我們創建SimpleDateFormat
的實例,通過指定模式將時間格式化為 24 小時等效格式。最後,我們斷言轉換後的時間與預期的 24 小時時間格式匹配。
4。結論
在本文中,我們學習了兩種將時間從 12 小時時間格式轉換為 24 小時時間格式的不同方法。此外,我們使用日期時間 API 中的DateTimeFormatter
類和舊版日期 API 中的SimpleDateFormat
類來實現轉換過程。
與往常一樣,示例的完整源代碼可在 GitHub 上獲取。