Android SimpleDateFormat, cómo usarlo?

Estoy intentando utilizar el SimpleDateFormat Android como esto:

 String _Date = "2010-09-29 08:45:22" SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = fmt.parse(_Date); return fmt.format(date); } catch(ParseException pe) { return "Date"; } 

El resultado es bueno y tengo: 2010-09-29

Pero si cambio el SimpleDateFormat a

 SimpleDateFormat("dd-MM-yyyy"); 

El problema es que voy a tener 03-03-0035 !!!!

¿Por qué y cómo obtener el formato como dd-MM-yyyy ?

Supongo que le gustaría invertir el formato de fecha?

SimpleDateFormat se puede utilizar para analizar y formatear. Sólo necesita dos formatos, uno que analiza la cadena y el otro que devuelve la impresión deseada:

 SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); Date date = fmt.parse(dateString); SimpleDateFormat fmtOut = new SimpleDateFormat("dd-MM-yyyy"); return fmtOut.format(date); 

A continuación se muestran todos los formatos de fecha disponibles, leer más doc aquí .

 Symbol Meaning Kind Example D day in year Number 189 E day of week Text E/EE/EEE:Tue, EEEE:Tuesday, EEEEE:T F day of week in month Number 2 (2nd Wed in July) G era designator Text AD H hour in day (0-23) Number 0 K hour in am/pm (0-11) Number 0 L stand-alone month Text L:1 LL:01 LLL:Jan LLLL:January LLLLL:J M month in year Text M:1 MM:01 MMM:Jan MMMM:January MMMMM:J S fractional seconds Number 978 W week in month Number 2 Z time zone (RFC 822) Time Zone Z/ZZ/ZZZ:-0800 ZZZZ:GMT-08:00 ZZZZZ:-08:00 a am/pm marker Text PM c stand-alone day of week Text c/cc/ccc:Tue, cccc:Tuesday, ccccc:T d day in month Number 10 h hour in am/pm (1-12) Number 12 k hour in day (1-24) Number 24 m minute in hour Number 30 s second in minute Number 55 w week in year Number 27 G era designator Text AD y year Number yy:10 y/yyy/yyyy:2010 z time zone Time Zone z/zz/zzz:PST zzzz:Pacific Standard 

Creo que este enlace puede ayudarte

O

  Date date = Calendar.getInstance().getTime(); // // Display a date in day, month, year format // DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); String today = formatter.format(date); System.out.println("Today : " + today); 
 String _Date = "2010-09-29 08:45:22" SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat fmt2 = new SimpleDateFormat("dd-MM-yyyy"); try { Date date = fmt.parse(_Date); return fmt2.format(date); } catch(ParseException pe) { return "Date"; } 

prueba esto.

Esto funcionó para mí …

 @SuppressLint("SimpleDateFormat") private void setTheDate() { long msTime = System.currentTimeMillis(); Date curDateTime = new Date(msTime); SimpleDateFormat formatter = new SimpleDateFormat("MM'/'dd'/'y hh:mm"); curDate = formatter.format(curDateTime); mDateText.setText("" + curDate); } 

Se necesitaron muchos esfuerzos. Hice mucho golpe y prueba y finalmente conseguí la solución. Yo había usado "" MMM "" para mostrar el mes como: JAN

  • Diseño diferente para orientación horizontal y vertical
  • ¿Cuál es la clase alternativa para AudioInputStream en java (Android)?
  • ¿Hay algún almacenamiento de certificados de sistema en Android?
  • LinearLayout: Alineación a la derecha del padre
  • Java Android ¿cómo puedo hacer que ImageView sea más oscuro onClick
  • Establecer posición de botón aleatorio dentro de los límites de Java / Android
  • ¿Hay un Play, Pause, Rewind, Fast Forward métodos en Android?
  • Phonegap obtener valores localstorage de código Java?
  • Toma la imagen monocroma (en blanco y negro) con Android
  • Cómo configurar ProGuard para omitir métodos con SupressWarning ("unused")
  • Uso de URLs absolutas con Retrofit
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.