title: SimpleDateFormat Parsing error with AM/PM
body: <p>I am trying to parse input string date to Date. it is unable to detect AM/PM tag in the input.
  It should add time to specified date and return date.
  But its unable to parse AM/PM tag.
  03:00 PM is parsed to 03:00:00 in Date. It should be 15:00:00.</p>
  
  <p>output: 
      Date : Tue Dec 22 03:00:00 UTC 2015
      Calender : Tue Dec 22 11:15:00 UTC 2015
      Result : 2015-12-22 11:15 AM</p>
  
  <p>Am I using wrong date format?</p>
  
  <p>Here's my code:</p>
  
  <pre><code>import java.util.*;
  import java.text.*;
  public class Main {
     public static void main(String[] args) throws Exception {
        System.out.println("Result : "+Main.addHoursToDate("2015-12-22 03:00 `enter code here`PM",8,15,0));
     }
  
     public static String addHoursToDate(String date, int hoursToAdd, int minsToAdd, int secToAdd){
          String result = "";
          try{
              SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm aa");
              Date dt = sdf.parse(date);
  
              System.out.println("Date : " + dt.toString());
  
              Calendar cl = Calendar.getInstance();
              cl.setTime(dt);
              cl.add(Calendar.HOUR_OF_DAY, hoursToAdd);
              cl.add(Calendar.MINUTE, minsToAdd);
              cl.add(Calendar.SECOND, secToAdd);
  
              SimpleDateFormat dfCal = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
  
              result = Main.formatDate(cl.getTime().toString(),"EEE MMM dd HH:mm:ss z yyyy","yyyy-MM-dd HH:mm aa");
  
              System.out.println("Calender : " + cl.getTime().toString());
  
          }catch(Exception e){
              return e.toString();
          }
          return result;
      }
  
    public static String formatDate(String date, String currentFormat, String requiredFormat) throws Exception {
          String result = "";
          boolean flag = false;
          try {
              SimpleDateFormat currentFormatter = new SimpleDateFormat(currentFormat);
              Date currentDate = currentFormatter.parse(date);
  
              flag = date.equals(currentFormatter.format(currentDate));
              if (!flag){
                  throw new Exception();  // We are throwing this exception because the date has been parsed "successfully"  
                  // but still we are not sure that it has been parsed "correctly"!!!
              }
              SimpleDateFormat requiredFormatter = new SimpleDateFormat(requiredFormat);
              result = requiredFormatter.format(currentDate);
          }catch (Exception e){
              return "";
          }
  
          return result;
      }
  
  }
  </code></pre>