¿Cómo cambio el formato de fecha y hora en Android?

Estoy mostrando la fecha y la hora en Android con este formato:
2013-06-18 12:41:24

¿Cómo puedo cambiarlo al siguiente formato?
18-jun-2013 12:41 p. M.

Aquí está el código de trabajo

 public String parseDateToddMMyyyy(String time) { String inputPattern = "yyyy-MM-dd HH:mm:ss"; String outputPattern = "dd-MMM-yyyy h:mm a"; SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern); SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern); Date date = null; String str = null; try { date = inputFormat.parse(time); str = outputFormat.format(date); } catch (ParseException e) { e.printStackTrace(); } return str; } 

Documentación: SimpleDateFormat | Desarrolladores de Android

  SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy hh:mm a"); String date = format.format(Date.parse("Your date string")); 

Use este código como a continuación:

 SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy hh:mm a"); String date = formatter.format(Date.parse("Your date string")); 

Espero que te ayude.

 public class MainActivity extends AppCompatActivity { private Date oneWayTripDate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String date ="2017-05-05 13:58:50 "; SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat output = new SimpleDateFormat("MMMM dd,yyyy @hh:mm:ss aa"); try { oneWayTripDate = input.parse(date); // parse input } catch (ParseException e) { e.printStackTrace(); } Log.e("===============","======currentData======"+output.format(oneWayTripDate); } } 

Primero cree un objeto de Calendar usando su objeto Date . Luego crea una String usando la fecha, año, mes y etc. que necesites. entonces puedes usarlo

Puede obtener datos usando el método get () en la clase Calendar .

usa este código a continuación:

 Date date=new Date("2013-06-18 12:41:24"); SimpleDateFormat formatter5=new SimpleDateFormat("dd-MM-yyyy hh:mm a"); String formats1 = formatter5.format(date); System.out.println(formats1); 

Podemos usar este formato para convertir la fecha. Pase la fecha como parámetro

  public String formatdate(String fdate) { String datetime=null; DateFormat inputFormat = new SimpleDateFormat("dd-MM-yyyy"); SimpleDateFormat d= new SimpleDateFormat("yyyy-MM-dd"); try { Date convertedDate = inputFormat.parse(fdate); datetime = d.format(convertedDate); }catch (ParseException e) { } return datetime; } 

Modifiqué la respuesta de Rusabh para el formato de fecha general de mi proyecto

  public String formatDate(String dateToFormat, String inputFormat, String outputFormat) { try { Logger.e("DATE", "Input Date Date is " + dateToFormat); String convertedDate = new SimpleDateFormat(outputFormat) .format(new SimpleDateFormat(inputFormat) .parse(dateToFormat)); Logger.e("DATE", "Output Date is " + convertedDate); //Update Date return convertedDate; } catch (ParseException e) { e.printStackTrace(); } return null; } 

Uso:

  String inputFormat = "yyyy-MM-dd'T'HH:mmz"; String OutPutFormat = "MMMM dd', 'yyyy hh:mma"; String convertedDate = formatDate(asOfDateTime, inputFormat, OutPutFormat);