In the previous article, we have seen Java Program to Covert Time From 12-hour Format to 24-hour Format
In this article we are going to see how convert time from 24-hour to 12-hour format using Java programming language.
Java Program to Convert Time from 24-Hour to 12-Hour Format
It is considered that the time format is given in hh:mm:ss format.
Let’s see different ways to convert time from 24-hour to 12-hour format.
Method-1: Java Program to Convert Time from 24-Hour to 12-Hour Format By Using Static Input Value
Approach:
- Initialize time value.
- Call the method for conversion.
- Check if the time is in AM or PM by comparing the hh value with 12.
- Do hh = hh%12.
- If hh == 0 i.e., AM:
- Print 12, and print the minutes and seconds as it is.
- Else if it’s in PM.
- If the hh as it is.
- Print the rest values as it is.
Program:
public class Main { static void convert(String str) { // Get Hours int h1 = (int) str.charAt(0) - '0'; int h2 = (int) str.charAt(1) - '0'; int hh = h1 * 10 + h2; // check if the time should be in AM or PM String mrdn; if (hh < 12) { mrdn = "AM"; } else mrdn = "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 print Meridien System.out.println(" " + mrdn); } public static void main(String ar[]) { // 24 hour format String str = "13:58:28"; convert(str); } }
Output: 1:58:28 PM
Method-2: Java Program to Convert Time from 24-Hour to 12-Hour Format By Using User Input Value
Approach:
- Create Scanner class object.
- Take user input for hour, minute and seconds and whether it’s am or pm.
- If the user has given single value in input pad a zero to the left.
- Convert the AM/PM value to upper case(for easier comparison).
- Call the method for conversion.
- Check if the time is in AM or PM by comparing the hh value with 12.
- Do hh = hh%12.
- If hh == 0 i.e., AM:
- Print 12, and print the minutes and seconds as it is.
- Else if it’s in PM.
- If the hh as it is.
- Print the rest values as it is.
Program:
import java.util.Scanner; public class Main { static void convert(String str) { // Get Hours int h1 = (int) str.charAt(0) - '0'; int h2 = (int) str.charAt(1) - '0'; int hh = h1 * 10 + h2; // check if the time should be in AM or PM String mrdn; if (hh < 12) { mrdn = "AM"; } else mrdn = "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 print Meridien System.out.println(" " + mrdn); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter the time in 24 hour format"); System.out.println("Enter hours: "); String hh = sc.nextLine(); hh = padZero(hh); System.out.println("Enter minutes: "); String mm = sc.nextLine(); mm = padZero(mm); System.out.println("Enter seconds: "); String ss = sc.nextLine(); ss = padZero(ss); String time = hh + ":" + mm + ":" + ss; System.out.print("Time in 12-hour format is "); convert(time); } private static String padZero(String n) { if (n.length() == 1) n = "0" + n; return n; } }
Output: Enter the time in 24 hour format Enter hours: 14 Enter minutes: 32 Enter seconds: 12 Time in 12-hour format is 2:32:12 PM
Are you new to the java programming language? We recommend you to ace up your practice session with these Basic Java Programs Examples
Related Java Programs: