Java ofrece unas librerias para manejar horas y fechas, son Calendar y Date, del paquete java.util.
Pero al ahora de hacer cosas complejas estas librerias se vuelven muy tediosas para hacer cosas a veces sencillas, como por ejemplo, manejar programaciónes al estilo Outlook.
Joda-Time ofrece un paquete fenomenal para manejar todas estas cosas, primero descargate el paquete aqui.
Un ejemplo de como se calcula la diferencia entre dos fechas era esta
Date date1 = new Date(); Date date2 = new Date(); Long dif = date1.getTime() - date2.getTime(); System.out.println("Dias entre fechas: " + date1.getTime()); System.out.println("Dias entre fechas: " + date2.getTime()); System.out.println("Dias entre fechas: " + dif / 86400000L);
Con Joda-Time es mucho mas sencillo, vean el siguiente ejemplo.
DateTime start = new DateTime(); //Devuelve la fecha actual al estilo Date DateTime end = new DateTime(); //Devuelve la fecha actual al estilo Date //Buscar la diferencia int days = Days.daysBetween(start, end).getDays(); System.out.println("days = " + days);
Como convertir un objeto DateTime a un Date y a un Calendar, pues la mayoria de los otros frameworks trabajan con el objeto Date por defecto, aunque Joda tambien puede trabajar de la mano con Hibernate.
DateTime datetimeRented = new DateTime(); Date date = datetimeRented.toDate(); Calendar calendar = Calendar.getInstance(); calendar.setTime(datetimeRented.toDate());
Ahora que hemos visto un ejemplo que presentó algunas de las API, echemos un vistazo a las principales clases que un usuario de Joda-Time puede usar. Puedes ver el detalle de esta tabla aqui.
| Concepto | Sub-Concepto | Inmutable | Mutable |
| Instante Actual |
DateTimeDateMidnightInstant |
MutableDateTime |
|
| Parcial | LocalDateLocalDateTimeLocalTimePartial |
||
| Intervalos | Interval |
MutableInterval |
|
| Duración | Duration |
||
| Periodo | Cualquier Campo |
Period |
MutablePeriod |
| Solo un campo |
SecondsMinutesHoursDaysWeeksMonthsYears |
||
| Cronologia | BuddhistChronologyCopticChronologyEthiopicChronologyGJChronologyGregorianChronologyIslamicChronologyISOChronologyJulianChronology |


Gabo
on Feb 5th, 2010
@ 15:09:
Que ondas
Lo he usado asÃ
time = new LocalTime();
//Se obtiene la linea de texto a escribir con la hora y minuto
line += " ("+ time.getHourOfDay() + ":"+ time.getMinuteOfHour() + ")n" ;
//De alli se imprime en el buffer