2011-12-30 13 views
6

¿Hay alguna forma de formatear un mes sin ceros a la izquierda en Java/Android?Mes sin ceros a la izquierda en Android

Tengo esto:

mTitleText.setText(String.format("Pick Date Time: %tm/%te/%tY %tk:%02d", 
       mTime,mTime,mTime,mTime,minute)); 

y vuelve 02/12/2012 13:23 cuando quiero que vuelva 2/12/2012 13:23.

+1

¿No podría cortar el 0 inicial con una subcadena? ¿O quieres una solución más elegante? –

Respuesta

15

Para aquellos interesados ​​en evitar el largo JavaDocs:

Date mTime = new Date(); 
String text = new SimpleDateFormat("M/d/yyyy hh:mm").format(mTime); 

Usando M en lugar de MM y d en lugar de dd hará que el día del mes y mes sin ceros a la izquierda si es posible .

+5

También puede eliminar una de las 'h' en horas para eliminar el cero anterior allí. –

0

tl; dr

ZonedDateTime.now() 
      .format(DateTimeFormatter.ofPattern("M/d/uuuu HH:mm")) 

java.time

La forma moderna es con las clases java.time que suplantan los legados de edad clases de fecha y hora problemáticos.

En la clase DateTimeFormatter, defina un patrón de formato con códigos de un solo carácter para códigos de mes y/o día en lugar de caracteres dobles.

DateTimeFormatter f = DateTimeFormatter.ofPattern("M/d/uuuu HH:mm"); 

Obtén el momento actual.

ZoneId z = ZoneId.of("America/Montreal"); 
ZonedDateTime zdt = ZonedDateTime.now(z); 

Generar una cadena.

String output = zdt.format(f) 

Sobre java.time

El marco java.time está incorporado en Java 8 y versiones posteriores. Estas clases suplantan a las antiguas clases problemáticas de fecha y hora como java.util.Date, .Calendar, & java.text.SimpleDateFormat. El proyecto Joda-Time, ahora en maintenance mode, recomienda la migración a java.time.

Para obtener más información, consulte el Oracle Tutorial. Y busque Stack Overflow para obtener muchos ejemplos y explicaciones.

Gran parte de la funcionalidad java.time está de vuelta-portado a Java 6 & 7 en ThreeTen-Backport y adaptado además para Android en ThreeTenABP (ver How to use…).

El proyecto ThreeTen-Extra amplía java.time con clases adicionales. Este proyecto es un terreno de prueba para posibles adiciones futuras a java.time.Puede encontrar algunas clases útiles aquí, como Interval, YearWeek, YearQuarter y more.

Cuestiones relacionadas