tl; dr
LocalDate.now()
LocalDate
Si lo que desea es en realidad sólo la fecha sin la hora, utilice LocalDate
clase.
La clase LocalDate
representa un valor de fecha solamente sin hora del día y sin zona horaria.
Una zona horaria es crucial para determinar una fecha. Para cualquier momento dado, la fecha varía alrededor del mundo por zona. Por ejemplo, unos minutos después de la medianoche en Paris France es un nuevo día mientras aún está "ayer" en Montréal Québec.
Especifique un proper time zone name en el formato de continent/region
, como America/Montreal
, Africa/Casablanca
, o Pacific/Auckland
. Nunca use la abreviatura de 3-4 letras como EST
o IST
ya que son no zonas horarias verdaderas, no estandarizadas, y ni siquiera únicas (!).
ZoneId z = ZoneId.of("America/Montreal");
LocalDate today = LocalDate.now(z);
ZonedDateTime
Si desea una cita con el día de tiempo de puestos en el primer momento del día, pregunte java.time para determinar ese momento para usted. No suponga que el primer momento es a las 00:00:00. Anomalías como el horario de verano significa que el primer momento puede ocurrir en otro momento, como 01:00:00.
Use ese objeto de zona horaria, el ZoneId
, para generar un objeto ZonedDateTime
.
ZonedDateTime zdt = today.atStartOfDay(z); // Determine the first moment of the day on this date for this time zone.
para ver este mismo momento como un valor en UTC, extraer un objeto Instant
.
Instant instant = zdt.toInstant();
Evitar el legado clases de fecha y hora
Evitar las clases de fecha y hora viejos molestos como Calendar
. Estos son ahora heredados, suplantados por las clases java.time.
Sobre java.time
El marco java.time está incorporado en Java 8 y versiones posteriores. Estas clases suplantan a las viejas y problemáticas clases de fecha y hora legacy, como java.util.Date
, Calendar
, & SimpleDateFormat
.
El proyecto Joda-Time, ahora en maintenance mode, recomienda la migración a las clases java.time.
Para obtener más información, consulte el Oracle Tutorial. 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 más tarde
- incorporado.
- Parte de la API estándar de Java 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 de back-java.time está portado a Java 6 & 7 en ThreeTen-Backport.
- Android
El proyecto se extiende ThreeTen-Extra 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.
gracias, esto lo hizo! –
@just_user luego valide la respuesta ... – Fred
en Android que me dio ayer (medianoche) – Anthony