2011-12-13 13 views
12

sto entrando data stringa YYYY/MM/DD HH:MM:SS format.I vuole cambiare nel mm/dd/yyyy HH:mm:ss e inoltre mostrerà AM e PM come posso fare this.please mi aiutanocome convertire il formato della data in Android

Grazie you

+0

Ho creato un metodo semplice per farlo. Fai riferimento a http://stackoverflow.com/a/40042733/4531507 –

risposta

34

Per ottenere AM PM e formato di data 12 ora usano hh:mm:ss a come formattatore stringa dove hh è per il formato 12 ore e a è per il formato AM PM.

Nota: HH è per 24 ora e hh è per il formato della data 12 ora

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

Esempio

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

bella risposta, mi ha aiutato molto..stato facendo un errore 'HH: mm: ss a' – MKJParekh

+0

grazie, che mi salva la vita –

+0

Non sta usando hh anche ti dà '0' per' 12'? Ho svalutato questa risposta. – Si8

1

Utilizzare android.text.format.Time per la conversione. Puoi passare l'ora come testo e ti restituirà l'ora nel formato desiderato usando timeInstance.format("");

è necessario fornire il formattatore.

riferite alle seguenti: Tempo: http://developer.android.com/reference/android/text/format/Time.html Formatter: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html

è possibile utilizzare qualsiasi combinazione di stringa di formattazione per lavorare con esso :)

1

basta usare la classe Tempo. Prova qualcosa di simile a questo.

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

Se hai davvero bisogno di un oggetto Date, prova questo.

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

è possibile utilizzare SimpleDateFormat o DateFormat per questo qui è l'esempio

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

È possibile utilizzare il SimpleDateFormat per lo stesso tipo di eventuali operazioni di data.

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); 

} 

e utilizzare come

getFormatedDate(strDate, 
      "yyyy-MM-dd HH:mm:ss", "mm/dd/yyyy") 
Problemi correlati