Convert time from 24 hour clock to 12 hour clock format - GeeksforGeeks

03 May, 2021
Given a time in a 24-hour clock (military time), convert it to 12-hour clock format.Note: Midnight is 00:00:00 on a 24-hour clock and 12:00:00 AM on a 12-hour clock. Noon is 12:00:00 on 24-hour clock and 12:00:00 PM on 12-hour clock.A string will be given of the format hh:mm:ss and output should be in the format hh:mm:ss AM or hh:mm:ss PM in 12hour clock. Here hh represents hour, mm represents minutes and ss represents seconds.Examples:  
Input : 17:35:20
Output : 5:35:20 PM

Input : 00:10:24
Output : 12:10:24 AM
 
The approach to solving this problem requires some observations. First that the minutes and seconds will be same in both the cases. The only change will be in the hours and according to that Meridien will be appended to the string.For hours, first convert it from string to int datatype, then take its modulo with 12 and that will be our hours in 12-hour format. Still, there will be a case when hour becomes 00 i.e (12 or 00 in 24-hour format) which we need to handle separately.Below is the implementation of above approach:  
C++
Java
Python3
C#
PHP
Javascript
// CPP program to convert time from 24 hour// to 12 hour format #include <bits/stdc++.h> using namespace std; // Convert Function which takes in// 24hour time and convert it to// 12 hour formatvoid convert12(string str){    // Get Hours    int h1 = (int)str[0] - '0';    int h2 = (int)str[1] - '0';     int hh = h1 * 10 + h2;     // Finding out the Meridien of time    // ie. AM or PM    string Meridien;    if (hh < 12) {        Meridien = "AM";    }    else        Meridien = "PM";     hh %= 12;     // Handle 00 and 12 case separately    if (hh == 0) {        cout << "12";         // Printing minutes and seconds        for (int i = 2; i < 8; ++i) {            cout << str[i];        }    }    else {        cout << hh;        // Printing minutes and seconds        for (int i = 2; i < 8; ++i) {            cout << str[i];        }    }     // After time is printed    // cout Meridien    cout << " " << Meridien << '\n';} // Driver codeint main(){    // 24 hour format    string str = "17:35:20";     convert12(str);     return 0;}
// Java program to convert time from 24 hour// to 12 hour format import java.util.*;// Convert Function which takes in// 24hour time and convert it to// 12 hour formatclass GFG{ static void convert12(String str){// Get Hours    int h1 = (int)str.charAt(0) - '0';    int h2 = (int)str.charAt(1)- '0';     int hh = h1 * 10 + h2;     // Finding out the Meridien of time    // ie. AM or PM    String Meridien;    if (hh < 12) {        Meridien = "AM";    }    else        Meridien = "PM";     hh %= 12;     // Handle 00 and 12 case separately    if (hh == 0) {        System.out.print("12");         // Printing minutes and seconds        for (int i = 2; i < 8; ++i) {        System.out.print(str.charAt(i));        }    }    else {        System.out.print(hh);        // Printing minutes and seconds        for (int i = 2; i < 8; ++i) {        System.out.print(str.charAt(i));        }    }     // After time is printed    // cout MeridienSystem.out.println(" "+Meridien);} //Driver codepublic static void main(String ar[]){ // 24 hour format    String str = "17:35:20";    convert12(str); }}
# Python program to convert time from 24 hour# to 12 hour format # Convert Function which takes in# 24hour time and convert it to# 12 hour formatdef convert12(str):     # Get Hours    h1 = ord(str[0]) - ord('0');    h2 = ord(str[1]) - ord('0');     hh = h1 * 10 + h2;     # Finding out the Meridien of time    # ie. AM or PM    Meridien="";    if (hh < 12):        Meridien = "AM";    else:        Meridien = "PM";     hh %= 12;     # Handle 00 and 12 case separately    if (hh == 0):        print("12", end = "");         # Printing minutes and seconds        for i in range(2, 8):            print(str[i], end = "");     else:        print(hh,end="");                 # Printing minutes and seconds        for i in range(2, 8):            print(str[i], end = "");     # After time is printed    # cout Meridien    print(" " + Meridien); # Driver codeif __name__ == '__main__':     # 24 hour format    str = "17:35:20";    convert12(str); # This code is contributed by 29AjayKumar
// C# program to convert time from 24 hour// to 12 hour format  using System;// Convert Function which takes in// 24hour time and convert it to// 12 hour formatclass GFG{  static void convert12(string str){// Get Hours    int h1 = (int)str[0] - '0';    int h2 = (int)str[1]- '0';      int hh = h1 * 10 + h2;      // Finding out the Meridien of time    // ie. AM or PM    string Meridien;    if (hh < 12) {        Meridien = "AM";    }    else        Meridien = "PM";      hh %= 12;      // Handle 00 and 12 case separately    if (hh == 0) {        Console.Write("12");          // Printing minutes and seconds        for (int i = 2; i < 8; ++i) {        Console.Write(str[i]);        }    }    else {        Console.Write(hh);        // Printing minutes and seconds        for (int i = 2; i < 8; ++i) {        Console.Write(str[i]);        }    }      // After time is printed    // cout MeridienConsole.WriteLine(" "+Meridien);}  //Driver codepublic static void Main(){  // 24 hour format    string str = "17:35:20";    convert12(str);  }}
<?php// PHP program to convert time// from 24 hour to 12 hour format // Convert Function which takes// in 24hour time and convert it// to 12 hour formatfunction convert12($str){    // Get Hours    $h1 = $str[0] - '0';    $h2 = $str[1] - '0';     $hh = $h1 * 10 + $h2;     // Finding out the Meridien    // of time ie. AM or PM    $Meridien;    if ($hh < 12)    {        $Meridien = "AM";    }    else        $Meridien = "PM";     $hh %= 12;     // Handle 00 and 12    // case separately    if ($hh == 0)    {        echo "12";         // Printing minutes and seconds        for ($i = 2; $i < 8; ++$i)        {            echo $str[$i];        }    }    else    {        echo $hh;                 // Printing minutes and seconds        for ($i = 2; $i < 8; ++$i)        {            echo $str[$i];        }    }     // After time is printed    // cout Meridien    echo " " , $Meridien;} // Driver code // 24 hour format$str = "17:35:20"; convert12($str); // This code is contributed// by ajit?>
<script>// javascript program to convert time from 24 hour// to 12 hour format    // Convert Function which takes in// 24hour time and convert it to// 12 hour formatfunction convert12(str){     // Get Hours   var h1 = Number(str[0] - '0');    var h2 = Number(str[1] - '0');        var hh = h1 * 10 + h2;        // Finding out the Meridien of time    // ie. AM or PM       var Meridien;         if (hh < 12) {        Meridien = "AM";    }    else        Meridien = "PM";        hh %= 12;        // Handle 00 and 12 case separately    if (hh == 0) {        document.write("12");            // Printing minutes and seconds        for (var i = 2; i < 8; ++i) {        document.write(str[i]);        }    }    else {        document.write(hh);        // Printing minutes and seconds        for (var i = 2; i < 8; ++i) {        document.write(str[i]);        }    }        // After time is printed    // cout Meridien     document.write(" "+Meridien);}    // Driver code    // 24 hour format    var str = "17:35:20";    convert12(str);         // This code is contributed by bunnyram19.    </script>
5:35:20 PM
 
SURENDRA_GANGWAR
jit_t
ukasp
nidhi_biet
29AjayKumar
bunnyram19
Constructive Algorithms
date-time-program
Technical Scripter 2018
C++ Programs
Technical Scripter
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
C++ Program for QuickSort
Shallow Copy and Deep Copy in C++
delete keyword in C++
Passing a function as a parameter in C++
cin in C++
CSV file management using C++
C Program to Swap two Numbers
Program to implement Singly Linked List in C++ using class
Const keyword in C++
Generics in C++