Search code examples
javadatedatetime-conversion

Convert 24 Hour Time in to 12 Hour Time in Java


I want to convert 24 Hour time into 12 Hour AM/PM time. e.g:- How to convert date 2012-03-20T22:30:00.000+05:30 to to 2012-03-20 10:30 PM??

I have extratced the date but its in 24 Hour time. I though used SimpleDateFormater but still for 12.30 it is showing 00.30 and not 12.30 PM.

Thanks in advance.


Solution

  • The bundled java.util.Date and .Calendar classes are notoriously troublesome. Avoid them. Use either Joda-Time or the new java.time package in Java 8.

    Joda-Time

    DateTimeZone timeZone = DateTimeZone.ForID( "Asia/Kolkata" );
    DateTime dateTime = new DateTime( "2012-03-20T22:30:00.000+05:30", timeZone );
    Java.util.Locale locale = java.util.Locale.Builder().setLanguage("en").setRegion("IN").build();
    DateTimeFormatter formatter = DateTimeFormat.forStyle( "SS" ).withLocale( locale).withZone( timeZone );
    String output = formatter.print( dateTime );