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.
¿No podría cortar el 0 inicial con una subcadena? ¿O quieres una solución más elegante? –