題目描述

給定一個12小時制(AM/PM)格式的時間,將其轉換成24小時制的時間格式。



12小時制的半夜是「12:00:00AM」,24小時制的半夜是「00:00:00」。12小時制的中午是「12:00:00PM」,24小時制的中午是「12:00:00」。

原題網址

輸入格式

輸入為一個12小時制的時間字串。

輸出格式

輸出24小時制的時間字串。

範例輸入

07:05:45PM

範例輸出

19:05:45

解題概念

首先分別建立出12小時制和24小時制的SimpleDateFormat物件。12小時制的樣板字串為「hh:mm:ssa」,「hh」為12小時制的小時,「a」為AM/PM的標記;24小時制的樣板字串為「HH:mm:ss」,「HH」為24小時制的小時。利用12小時制SimpleDateFormat物件的「parse」方法來將傳入的12小時制的時間字串轉為Date物件,再利用24小時制SimpleDateFormat物件的「format」方法將Date物件轉為24小時制的時間字串來輸出。

參考答案

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Scanner;

public class Solution {

    private static final SimpleDateFormat sdfInput = new SimpleDateFormat("hh:mm:ssa", Locale.ENGLISH);
    private static final SimpleDateFormat sdfOutput = new SimpleDateFormat("HH:mm:ss", Locale.ENGLISH);

    public static void main(final String[] args) throws Exception {
        final Scanner sc = new Scanner(System.in);
        final String dateString = sc.nextLine();
        final Date date = sdfInput.parse(dateString);
        System.out.println(sdfOutput.format(date));
    }
}