Search code examples
javaandroidandroid-studiotimesimpledateformat

Cannot change AM/PM of Time After 12:00 (AfterNoon)


How do i convert 24 hours format to 12 hours along with AM/PM, i have checked articles and also in stackoverflow but problem is if string is "12:43" (afternoon time) and i converted it into 12 hours then it shows "12:43 AM" but it should show "12:43 PM". Below is the java code which i have written.

MainActivity.Java

public class PrayerActivity extends AppCompatActivity {
    TextView result;
String fetch="12:43"
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
result=findViewById(R.id.result);
Date dateCode = null;
String formatTwelve;
String resultsAfter;
final SimpleDateFormat code12Hours = new SimpleDateFormat("hh:mm");
                            try {
                                dateCode = code12Hours.parse(fetch);
                            } catch (ParseException e) {
                                e.printStackTrace();
                            }
formatTwelve = code12Hours.format(dateCode);
if (formatTwelve.equals(fetch)) {
                                resultsAfter= formatTwelve + " AM";
                            } else {
                                resultsAfter= formatTwelve + " PM";
                            }
result.setText(resultsAfter);
}}

Solution

  • public static void main(String[] args) {
            String[] stringDates = { "12:43", "14:00", "10:00" };
            for (String dateString : stringDates) {
                // Input 24 HRS
                LocalTime localTime = LocalTime.parse(dateString, DateTimeFormatter.ofPattern("HH:mm", Locale.ENGLISH));
    
                // Output 12 hrs
                System.out.println(localTime.format(DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH)));
            }
        }
    

    output

    12:43 PM
    02:00 PM
    10:00 AM