Program to convert time from 12 hour to 24 hour format - GeeksforGeeks

24 Oct, 2021
Given a time in 12-hour AM/PM format, convert it to military (24-hour) time. Note: Midnight is 12:00:00 AM on a 12-hour clock and 00:00:00 on a 24-hour clock. Noon is 12:00:00 PM on 12-hour clock and 12:00:00 on 24-hour clock
Examples:
Input : A single string containing a time in 12-hour 
clock format(hh:mm:ss AM or hh:mm:ss PM
        where 01 <= hh <= 12 or 01 <= mm,ss <= 59 
Output :Convert and print the given time in 24-hour format,
where 00 <= hh <= 23

Input : 07:05:45PM
Output : 19:05:45
C++
Java
Python3
C#
Javascript
// C++ program to convert 12 hour to 24 hour// format#include<iostream>using namespace std; void print24(string str){    // Get hours    int h1 = (int)str[1] - '0';    int h2 = (int)str[0] - '0';    int hh = (h2 * 10 + h1 % 10);     // If time is in "AM"    if (str[8] == 'A')    {        if (hh == 12)        {            cout << "00";            for (int i=2; i <= 7; i++)                cout << str[i];        }        else        {            for (int i=0; i <= 7; i++)                cout << str[i];        }    }     // If time is in "PM"    else    {        if (hh == 12)        {            cout << "12";            for (int i=2; i <= 7; i++)                cout << str[i];        }        else        {            hh = hh + 12;            cout << hh;            for (int i=2; i <= 7; i++)                cout << str[i];        }    }} // Driver codeint main(){   string str = "07:05:45PM";   print24(str);   return 0;}
// Java program to convert 12 hour// format to  24 hour formatclass GFG{static void print24(String str){    // Get hours    int h1 = (int)str.charAt(1) - '0';    int h2 = (int)str.charAt(0) - '0';    int hh = (h2 * 10 + h1 % 10);     // If time is in "AM"    if (str.charAt(8) == 'A')    {        if (hh == 12)        {            System.out.print("00");            for (int i = 2; i <= 7; i++)                System.out.print(str.charAt(i));        }        else        {            for (int i = 0; i <= 7; i++)                System.out.print(str.charAt(i));        }    }     // If time is in "PM"    else    {        if (hh == 12)        {            System.out.print("12");            for (int i = 2; i <= 7; i++)                System.out.print(str.charAt(i));        }        else        {            hh = hh + 12;            System.out.print(hh);            for (int i = 2; i <= 7; i++)                System.out.print(str.charAt(i));        }    }} // Driver codepublic static void main (String[] args){    String str = "07:05:45PM";    print24(str);}} // This code is contributed by Anant Agarwal.
# Python3 program to convert 12# hour to 24 hour formatdef print24(s):     # Get hours    h1 = ord(s[1]) - ord('0')    h2 = ord(s[0]) - ord('0')    hh = (h2 * 10 + h1 % 10)      # If time is in "AM"    if (s[8] == 'A'):        if (hh == 12):            print('00', end = '')                         for i in range(2, 8):                print(s[i], end = '')         else:            for i in range(0, 8):                print(s[i], end = '')      # If time is in "PM"    else:        if (hh == 12):            print("12", end = '')                         for i in range(2, 8):                print(s[i], end = '')                 else:            hh = hh + 12;            print(hh, end = '')                         for i in range(2, 8):                print(s[i], end = '')             # Driver code          if __name__=="__main__":    s = "07:05:45PM"       print24(s)    # This code is contributed by rutvik_56
// C# program to convert 12 hour// format to 24 hour formatusing System; class GFG{     static void print24(String str){    // Get hours    int h1 = (int)str[1] - '0';    int h2 = (int)str[0] - '0';    int hh = (h2 * 10 + h1 % 10);     // If time is in "AM"    if (str[8] == 'A')    {        if (hh == 12)        {            Console.Write("00");            for (int i = 2; i <= 7; i++)                Console.Write(str[i]);        }        else        {            for (int i = 0; i <= 7; i++)                Console.Write(str[i]);        }    }     // If time is in "PM"    else    {        if (hh == 12)        {            Console.Write("12");            for (int i = 2; i <= 7; i++)                Console.Write(str[i]);        }        else        {            hh = hh + 12;            Console.Write(hh);            for (int i = 2; i <= 7; i++)                Console.Write(str[i]);        }    }} // Driver codepublic static void Main(String[] args){    String str = "07:05:45PM";    print24(str);}} // This code is contributed by Rajput-Ji
<script>// javascript program to convert 12 hour// format to 24 hour format     function print24(str){    // Get hours    var h1 = Number(str[1] - '0');    var h2 = Number(str[0] - '0');    var hh = (h2 * 10 + h1 % 10);      // If time is in "AM"    if (str[8] == 'A')    {        if (hh == 12)        {            document.write("00");            for (var i = 2; i <= 7; i++)                document.write(str[i]);        }        else        {            for (var i = 0; i <= 7; i++)                document.write(str[i]);        }    }      // If time is in "PM"    else    {        if (hh == 12)        {            document.write("12");            for (var i = 2; i <= 7; i++)                document.write(str[i]);        }        else        {            hh = hh + 12;            document.write(hh);            for (var i = 2; i <= 7; i++)                document.write(str[i]);        }    }}  // Driver code     var str = "07:05:45PM";    print24(str); // This code is contributed by bunnyram19.</script>
Output: 
19:05:45
Method 2: Using java Date
Java
// Java program for the above approachimport java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date; class GFG {    public static String englishTime(String input)        throws ParseException    {         // Format of the date defined in the input String        DateFormat dateFormat            = new SimpleDateFormat("hh:mm:ss aa");               // Change the pattern into 24 hour format        DateFormat format            = new SimpleDateFormat("HH:mm:ss");        Date time = null;        String output = "";               // Converting the input String to Date        time = dateFormat.parse(input);               // Changing the format of date        // and storing it in        // String        output = format.format(time);        return output;    }     // Driver Code    public static void main(String[] arg)        throws ParseException    {        System.out.println(englishTime("07:05:45 PM"));    }}
Output:
19:05:45
This article is contributed by Rahul singh (Nit kkr). If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Rajput-Ji
rutvik_56
le0
bunnyram19
as5853535
prachisoda1234
date-time-program
C++
School Programming
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Inheritance in C++
Map in C++ Standard Template Library (STL)
C++ Classes and Objects
Virtual Function in C++
Bitwise Operators in C/C++
Python Dictionary
Inheritance in C++
Reverse a string in Java
C++ Classes and Objects
Interfaces in Java