Mes sin ceros iniciales en Android
¿Hay una forma de dar formato a un mes sin ceros en Java / Android?
Tengo esto:
- Extraño resultado de análisis de fecha y hora con SimpleDateFormat
- Advertencia de SimpleDateFormat Para obtener el formato local, utilice getDateInstance (), getDateTimeInstance () o getTimeInstance ()
- Android SimpleDateFormat devolver el tiempo incorrecto entre la medianoche y 1 am
- Obtenga día, mes y año por separado usando SimpleDateFormat
- Costumize android Fecha como twitter y feed de noticias de instagram
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 02/12/2012 13:23.
- ¿Cómo puedo obtener la fecha actual en Android?
- SimpleDateFormat: excepción de fecha incomparable
- Conflicto de modo de 12/24 horas
- Unix timestamp a datetime en android
- Patrón de caracteres 'L' en SimpleDateFormat
- SimpleDateFormat devuelve la fecha de la cadena en diferentes idiomas
- SimpleDateFormat - fecha imposible
- Objeto de fecha SimpleDateFormat no analiza correctamente la cadena de hora en el entorno Java (Android)
Para aquellos interesados en evitar los extensos JavaDocs :
Date mTime = new Date(); String text = new SimpleDateFormat("M/d/yyyy hh:mm").format(mTime);
Utilizar M
lugar de MM
y d
lugar de dd
hará que el día del mes y mes sin ceros a la izquierda si es posible.
En lugar de usar String.format()
, puede utilizar la clase SimpleDateFormat
? Hará lo que quiera, pero sin ver más de su código no puedo decir si tiene un objeto de fecha o calendario que puede utilizar.
http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
Tl dr
ZonedDateTime.now() .format( DateTimeFormatter.ofPattern( "M/d/uuuu HH:mm" ) )
Java.time
La manera moderna es con las clases de java.time que suplantan las viejas clases de la fecha-hora del legado.
En la clase DateTimeFormatter
, defina un patrón de formato que utilice códigos de carácter único para los códigos de mes y / o día del mes en lugar de caracteres de doble carácter.
DateTimeFormatter f = DateTimeFormatter.ofPattern( "M/d/uuuu HH:mm" );
Obtenga el momento actual.
ZoneId z = ZoneId.of( "America/Montreal" ); ZonedDateTime zdt = ZonedDateTime.now( z );
Genera una cadena.
String output = zdt.format( f )
Acerca de java.time
El framework java.time está integrado en Java 8 y posterior. Estas clases suplantan las difíciles viejas clases de fecha y hora como java.util.Date
, .Calendar
, y java.text.SimpleDateFormat
.
El proyecto Joda-Time , ahora en modo de mantenimiento , recomienda la migración a java.time.
Para obtener más información, consulte el Tutorial de Oracle . Y busca Stack Overflow para muchos ejemplos y explicaciones.
Gran parte de la funcionalidad de java.time es back-portada a Java 6 & 7 en ThreeTen-Backport y adaptada además a Android en ThreeTenABP (consulte Cómo usar … ).
El proyecto ThreeTen-Extra extiende java.time con clases adicionales. Este proyecto es un terreno probatorio para posibles adiciones futuras a java.time. Puede encontrar algunas clases útiles como Interval
, YearWeek
, YearQuarter
y más .
- Espresso NoMatchingViewException cuando se utiliza matricador withId
- La mejor manera de usar las API de Google con OAuth 2.0 en Android