¿Hay alguna otra manera que estos dos?
Sí hay.
LocalDate.now(
ZoneId.of( "Pacific/Auckland" )
)
java.time
Java 8 y posterior viene con el nuevo paquete java.time incorporado. Ver tutorial . Gran parte de la funcionalidad java.time se transfiere a Java 6 y 7 en ThreeTen-Backport y se adapta aún más a Android en ThreeTenABP .
Similar a Joda-Time , java.time ofrece una LocalDateclase para representar un valor de solo fecha sin hora del día y sin zona horaria.
Tenga en cuenta que la zona horaria es crítica para determinar una fecha en particular. A la medianoche en París, por ejemplo, la fecha todavía es "ayer" en Montreal.
LocalDate today = LocalDate.now( ZoneId.of( "America/Montreal" ) ) ;
De forma predeterminada, java.time utiliza el estándar ISO 8601 para generar una representación de cadena de una fecha o valor de fecha y hora. (Otra similitud con Joda-Time.) Simplemente llame toString()para generar texto como 2015-05-21.
String output = today.toString() ;
Sobre java.time
El marco java.time está integrado en Java 8 y versiones posteriores. Estas clases suplantar la vieja problemáticos heredados clases de fecha y hora como java.util.Date, Calendar, y SimpleDateFormat.
El proyecto Joda-Time , ahora en modo de mantenimiento , aconseja la migración a las clases java.time .
Para obtener más información, consulte el Tutorial de Oracle . Y busque Stack Overflow para obtener muchos ejemplos y explicaciones. La especificación es JSR 310 .
¿Dónde obtener las clases java.time?
- Java SE 8 , Java SE 9 y posterior
- Incorporado.
- Parte de la API Java estándar con una implementación integrada.
- Java 9 agrega algunas características menores y correcciones.
- Java SE 6 y Java SE 7
- Gran parte de la funcionalidad java.time se transfiere a Java 6 y 7 en ThreeTen-Backport .
- Androide
- Versiones posteriores de las implementaciones de paquetes de Android de las clases java.time.
- Para principios de Android, el ThreeTenABP proyecto se adapta ThreeTen-Backport (mencionado anteriormente). Ver Cómo utilizar ThreeTenABP ... .
El proyecto ThreeTen-Extra extiende java.time con clases adicionales. Este proyecto es un campo de pruebas para posibles adiciones futuras a java.time. Usted puede encontrar algunas clases útiles aquí, como Interval, YearWeek, YearQuarter, y más .