online joda examples example dates create java date datetime time jodatime

java - examples - ¿Cómo obtener la fecha y hora correctas en Joda-Time?



jodatime java 8 (2)

¿Cómo obtener la fecha y hora correctas en Joda Time? Por apropiadamente quiero decir tiempo en mi país. Leí páginas oficiales y algunos tutoriales, hay muchas cosas sobre Locales y zonas horarias, pero me pareció bastante confuso. No encontré ningún ejemplo de cómo simplemente obtenerlo.
Lo necesito por dos cosas:
1) para ponerse al día para la publicación en discusion
2) para obtener la hora actual que voy a "comparar" con la fecha de nacimiento y calcular la edad.
¿Cómo puedo establecer la hora actual cuando tengo UTC + 1 (Praga - República Checa)?
Gracias


Aquí hay un pseudo código para Joda Time que podría serle útil.

import org.joda.time.*; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; public class JodaTimeExample { public static void main(String[] sm) { DateTimeFormatter dateFormat = DateTimeFormat .forPattern("G,C,Y,x,w,e,E,Y,D,M,d,a,K,h,H,k,m,s,S,z,Z"); String dob = "2002-01-15"; LocalTime localTime = new LocalTime(); LocalDate localDate = new LocalDate(); DateTime dateTime = new DateTime(); LocalDateTime localDateTime = new LocalDateTime(); DateTimeZone dateTimeZone = DateTimeZone.getDefault(); System.out .println("dateFormatr : " + dateFormat.print(localDateTime)); System.out.println("LocalTime : " + localTime.toString()); System.out.println("localDate : " + localDate.toString()); System.out.println("dateTime : " + dateTime.toString()); System.out.println("localDateTime : " + localDateTime.toString()); System.out.println("DateTimeZone : " + dateTimeZone.toString()); System.out.println("Year Difference : " + Years.yearsBetween(DateTime.parse(dob), dateTime).getYears()); System.out.println("Month Difference : " + Months.monthsBetween(DateTime.parse(dob), dateTime) .getMonths()); } }

Enlace para el formateador DateTimeFormat

Joda Time API

Espero que esto ayude. Si tienes alguna pregunta, házmelo saber.

PD: Gracias a Sumit Arora por dar la salida.

dateFormatr : AD,20,2016,2016,26,2,Tue,2016,180,6,28,PM,8,8,20,20,25,20,2,‌​, LocalTime : 20:25:17.308 localDate : 2016-06-28 dateTime : 2016-06-28T20:25:18.872+05:30 localDateTime : 2016-06-28T20:25:20.260 DateTimeZone : Asia/Kolkata Year Difference : 14 Month Difference : 173


LocalTime localTime = new LocalTime(); LocalDate localDate = new LocalDate(); DateTime dateTime = new DateTime(); LocalDateTime localDateTime = new LocalDateTime();

cualquiera de este contructor crea una fecha en su zona horaria, donde su zona horaria es la zona horaria DateTimeZone.getDefault();

Desea comparar la fecha actual con la fecha de nacimiento. ¿Cómo se guarda la fecha de nacimiento en la base de datos?
Si es con la zona horaria UTC, puede comparar con dateTime en UTC TZ

Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.UTC));

Si tiene Server TZ deberías hacer

Years.yearsBetween(dateOfBirth, new DateTime());

Si tiene Server TZ deberías hacer

Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.forID("ClientTZ")));