jueves, 15 de octubre de 2009

MANEJO DE FECHAS CON JODA API

El manejo de Fechas en JAVA siempre a sido un poco molestoso ya que uno por muchos motivos tiende al manejo de dichas fechas de diferentes formas:

En String, Date, Calendar, GregorianCalendar, etc.

Y porque no hay un estándar en dicho manejo de fechas, las tendencias son siempre convertir formatear, reconvertir y volver a formatear para manipular los datos de un lado a otro. Bueno en esta oportunidad presento esta API Java que puede ayudar en algo dichos problemas ya que proporción objetos (No Deprecated) que son fáciles de manipular, que permiten muchas conversiones: StringToDate, DateToString, etc. y que con una sola línea te devuelve lo deseado, el API se llama JODA y aquí les comparto una clase JAVA donde muestro su manejo. El manejo es tan fácil como decir:

int anos = Years.yearsBetween( fechaInicio, fechaFin ).getYears();

Aquí maestro el resumen informativo de un demo en donde trabajo el cálculo de 2 fechas:


FECHA INICIO [DateTime]: 1983-01-04T00:00:00.000-05:00
FECHA FIN [DateTime]: 2009-10-15T14:23:30.093-05:00

FECHA INICIO [Date]: Tue Jan 04 00:00:00 COT 1983
FECHA FIN [Date]: Thu Oct 15 14:23:30 COT 2009

FECHA INICIO [Date MGT]: 4 Jan 1983 05:00:00 GMT
FECHA FIN [Date MGT]: 15 Oct 2009 19:23:30 GMT

FECHA INICIO [Date LOCALE]: 04-ene-1983 0:00:00
FECHA FIN [Date LOCALE]: 15-oct-2009 14:23:30

FECHA INICIO [Calendar]: java.util.GregorianCalendar[time=410504400000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Bogota",offset=-18000000,dstSavings=0,useDaylight=false,transitions=5,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=1983,MONTH=0,WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,DAY_OF_MONTH=4,DAY_OF_YEAR=4,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-18000000,DST_OFFSET=0]

FECHA FIN [Calendar]: java.util.GregorianCalendar[time=1255634610093,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Bogota",offset=-18000000,dstSavings=0,useDaylight=false,transitions=5,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2009,MONTH=9,WEEK_OF_YEAR=42,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,DAY_OF_YEAR=288,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=23,SECOND=30,MILLISECOND=93,ZONE_OFFSET=-18000000,DST_OFFSET=0]

//VALIDANDO
[F.INICIO] ES ANTES [F.FIN]
[F.FIN] ES DESPUES [F.INICIO]


DATOS [FECHA INICIO]
--------------------
AÑO: 1983
AÑO DE LA CENTURIA: 83
AÑO DE LA ERA: 1983
MES DEL AÑO: 1
DIA DEL MES: 4
DIA DE LA SEMANA: 2
DIA DEL AÑO: 4
MINUTO DEL DIA: 0
MINUTO DE LA HORA: 0
SEGUNDO DEL DIA: 0
SEGUNDO DEL MINUTO: 0


DATOS [FECHA FIN]
-----------------
AÑO: 2009
AÑO DE LA CENTURIA: 9
AÑO DE LA ERA: 2009
MES DEL AÑO: 10
DIA DEL MES: 15
DIA DE LA SEMANA: 4
DIA DEL AÑO: 288
MINUTO DEL DIA: 863
MINUTO DE LA HORA: 23
SEGUNDO DEL DIA: 51810
SEGUNDO DEL MINUTO: 30

//OTROS DATOS
DIAS ENTRE [F.INICIO] & [F.FIN]: 9781
MESES ENTRE [F.INICIO] & [F.FIN]: 321
AÑOS ENTRE [F.INICIO] & [F.FIN]: 26
MINUTOS ENTRE [F.INICIO] & [F.FIN]: 14085503
SEGUNDOS ENTRE [F.INICIO] & [F.FIN]: 845130210


Para descargar El demo pulsar:
AQUÌ.

No hay comentarios: