2011-12-13 21 views
12

estoy recibiendo fecha en cadena en YYYY/MM/DD HH:MM:SS format.I desea cambiarlo en el mm/dd/yyyy HH:mm:ss y también se mostrará AM y PM ¿cómo puedo hacer me ayudan caro, deberíacómo convertir formato de fecha en Android

Gracias usted

+0

He creado un método simple para hacer esto. Consulte http://stackoverflow.com/a/40042733/4531507 –

Respuesta

34

Para obtener AM PM y el formato de fecha 12 horas hh:mm:ss a utilizan como formateador cadena donde hh es para formato de 12 horas y a es para el formato AM PM.

Nota: HH es para 24 horas y HH es de formato de fecha 12 horas

SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a"); 
      String newFormat = formatter.format(testDate); 

Ejemplo

String date = "2011/11/12 16:05:06"; 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd HH:MM:SS"); 
     Date testDate = null; 
     try { 
      testDate = sdf.parse(date); 
     }catch(Exception ex){ 
      ex.printStackTrace(); 
     } 
     SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a"); 
     String newFormat = formatter.format(testDate); 
     System.out.println(".....Date..."+newFormat); 
+1

buena respuesta, me ayudó mucho ... estaba cometiendo un error 'HH: mm: ss a' – MKJParekh

+0

gracias, que me salvó la vida –

+0

No está utilizando hh también te da '0' para' 12'? Volví a subir esta respuesta. – Si8

1

Use android.text.format.Time para la conversión. Puede pasar el tiempo como texto y le devolverá la hora en el formato deseado utilizando timeInstance.format("");

necesita proporcionar el formateador.

Consulte la siguiente: Tiempo: http://developer.android.com/reference/android/text/format/Time.html Formateador: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html

se puede utilizar cualquier combinación de cadena formateador para trabajar con él :)

1

sólo tiene que utilizar la clase de tiempo. Pruebe algo similar a esto.

Time time = new Time(); 
time.set(Long.valueOf(yourTimeString)); 

Si realmente necesita un objeto Date simplemente intente esto.

Date date = new Date(Long.parse(yourTimeString)); 
0

puede utilizar SimpleDateFormat o DateFormat para esto aquí es el ejemplo

SimpleDateFormat gsdf = new SimpleDateFormat("YYYY/MM/DD HH:mm:ss"); 
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a"); 
try{ 
    Date d = gsdf.parse("2011/12/13 16:17:00"); 
    System.out.println("new date format " + sdf.format(d)); 
}catch(Exception){ 
    // handle exception if parse time or another by cause 
} 
10

Puede utilizar el SimpleDateFormat los mismos tipos de operaciones de fecha alguna.

SimpleDateFormat sourceFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
SimpleDateFormat DesiredFormat = new SimpleDateFormat("MM/dd/yyyy HH:MM:SS a"); 
                  // 'a' for AM/PM 

Date date = sourceFormat.parse("2012/12/31 03:20:20"); 
String formattedDate = DesiredFormat.format(date.getTime()); 
// Now formattedDate have current date/time 
Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show(); 
0
public static String getFormatedDate(String strDate, String sourceFormate, 
     String destinyFormate) { 
    SimpleDateFormat df; 
    df = new SimpleDateFormat(sourceFormate); 
    Date date = null; 
    try { 
     date = df.parse(strDate); 

    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

    df = new SimpleDateFormat(destinyFormate); 
    return df.format(date); 

} 

y utilizar como

getFormatedDate(strDate, 
      "yyyy-MM-dd HH:mm:ss", "mm/dd/yyyy") 
Cuestiones relacionadas