Manejo de Fechas en Java

Fechas en Java

En este pequeño post voy a mostrar algunas trucos básicos para trabajar con fechas cuando estamos programando en Java. Espero que os sean útiles:

Si queremos crear un objeto Date con la fecha actual tenemos que ejecutar la sentencia:

Date fechaActual = new Date();

Si lo que queremos en crear un objeto Date con una fecha determinada, digamos 31/12/2012, podemos utilizar la clase SimpleDateFormat:

SimpleDateFormat formateador = new SimpleDateFormat(“yyyyMMdd”);
formateador.parse(“2012/12/31”);

También a veces tenemos que imprimir fechas en un formato determinado. Esto también se consigue mediante máscaras y la clase SimpleDateFormat. Imaginemos que tenemos un objeto Date con la fecha 31 de Diciembre de 2012. Si queremos imprimir por pantalla la fecha en el formato 31-12-2012 podemos utilizar las siguientes sentencias:

SimpleDateFormat formateador = new SimpleDateFormat(“dd-MM-yyyy”);
System.out.println(formateador.format(fechaObjetoDate));

Si queremos comprobar si una fecha es mayor que otra debemos utilizar el método compareTo:

if (fechaObjetoDate1.compareTo(fechaObjetoDate2) >= 0 ) {
System.out.println(“La fecha 1 es posterior a la fecha 2”);
}

 

Si queremos encapsular la hora y la fecha actual en un mismo objeto podemos utilizar la clase Timestamp:

 

Timestamp horaFecha = new Timestamp(System.currentTimeMillis());

 

Otro objeto para trabajar con fechas puede ser el objeto Calendar. Para crear un objeto Calendar con la fecha actual utilizamos la siguiente sentencia:

 

Calendar calendar = Calendar.getInstance();

 

A veces lo que queremos es transformar un objeto Date a Calendar. Lo que tenemos que hacer en este caso es convertirlo de la siguiente forma:

 

Calendar calendar = Calendar.getInstance();
calendar.setTime(objetoDate);

 

Y en otras ocasiones lo que queremos conseguir es un objeto Date a partir de un Calendar. En este caso lo debemos convertir con las siguientes sentencias:

 

Calendar calendar = Calendar.getInstance();
calendar.getTime();

 

Para inicializar un objeto Calendar con una fecha determinada sin utilizar el objeto Date:

 

Calendar fecha= Calendar.getInstance();
fecha.set(2011, 9, 25); // (Año, Mes, Dia). El Mes es un número menos. Enero=0, Febrero=1…

 

Para calcular los días transcurridos entre dos fechas podemos utilizar el siguiente método:

public static int diasTranscurridosEntre(Date fechaDesde, Date fechaHasta) {
long diff = fechaHasta.getTime() – fechaDesde.getTime();
long dias = diff / (1000 * 60 * 60 * 24);
return (int) dias;
}

Para sumar un número de meses a una fecha podemos utilizar el siguiente método:

public static Date sumarMesesAFecha(Date f, int meses) {
Calendar c = Calendar.getInstance();
c.setTime(f);
c.add(Calendar.MONTH, meses);
return c.getTime();
}

Para sumar un número de días a una fecha podemos utilizar el siguiente método:

public static Date sumarDiasAFecha(Date f, int dias) {
Calendar c = Calendar.getInstance();
c.setTime(f);
c.add(Calendar.DATE, dias);
return c.getTime();
}

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s