Vous êtes sur la page 1sur 8

MANEJO DE FECHAS

A.P.U. Jorge R. Mendoza

Formateo de fechas en Java

Trabajando con el Date del paquete java.util


no con el de java.sql:
Date fechaActual = new Date();
SimpleDateFormat formato = new SimpleDateFormat("yyyyMMdd");
String cadenaFecha = formato.format(fechaActual);

Para el formateo podemos variar:


dd.MM.yy --------- 09.04.98
yyyy.MM.dd G 'at' hh:mm:ss z ------- 1998.04.09 AD at 06:15:55 PDT
EEE, MMM d, ''yy ------- Thu, Apr 9, '98
h:mm a ------ 6:15 PM
H:mm -------- 18:15
H:mm:ss:SSS --------- 18:15:55:624
K:mm a,z -------------- 6:15 PM,PDT
yyyy.MMMMM.dd GGG hh:mm aaa

Date a String
java.util.Date date = new java.util.Date();
java.text.SimpleDateFormat sdf=new
java.text.SimpleDateFormat("dd/MM/yyyy");
String fecha = sdf.format(date);
SimpleDateFormat, podemos dar el formato que deseemos a las fechas. Si
por ejemplo quisisemos poner la fecha en formato anglosajn,
simplemente habra que cambiar la lnea donde usamos el constructor y
escribir
java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy/MM/dd");

String a Date

La clase SimpleDateFormat no solamente permite formatear


objetos tipo Date, sino que me permite crear objetos Date a partir
de un String que se encuentra en un formato determinado. Es as
cmo se puede hacer.
SimpleDateFormat formatoDelTexto = new SimpleDateFormat(dd-MM-yyyy);
String strFecha = 25-06-2010;
Date fecha = null;
try {
fecha = formatoDelTexto.parse(strFecha);
} catch (ParseException ex) {
ex.printStackTrace();
}
System.out.println(fecha.toString());

Creamos un objeto SimpleDateFormat y el parmetro del constructor ser el


formato en el que se encuentra la variable tipo String.
Crear un objeto tipo date, en donde se almacenar la fecha.
Utilizar el mtodo parse de la clase SimpleDateFormat, tener en cuenta que
puede lanzar excepciones.

Calendar

Obteniendo un Calendar

Calendar ahora = Calendar.getInstance();

El mtodo getInstance() devuelve una


instancia de GregorianCalendar con la
fecha (y hora) del momento.

Obteniendo un Calendar a partir de


un Date
El calendar tendr entonces los mismos

Calendar calendar = Calendar.getInstance();


calendar.setTime(unDate);

datos que el Date unDate, y podremos


ahora operar y modificar la fecha.
Recuerden, la modificacin ocurre sobre
el Calendar, y no sobre el Date (el cual es
inmutable).

Calendar

Obteniendo valores del Calendar

int dia = calendar.get(Calendar.DAY_OF_MONTH); //dia del mes


int mes = calendar.get(Calendar.MONTH); //mes, de 0 a 11
int anio = calendar.get(Calendar.YEAR); //ao
int
int
int
int

hora24 = calendar.get(Calendar.HOUR_OF_DAY); //hora en formato 24hs


minutos = calendar.get(Calendar.MINUTE);
segundos = calendar.get(Calendar.SECOND);
milisegundos = calendar.get(Calendar.MILLISECOND);

Cambiando valores de un Calendar

Calendar calendar = Calendar.getInstance();


calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 999);

Por ejemplo, para setear una fecha a "ltima


hora del da" podran hacer:

Calendar

Operando con el Calendar

Por ejemplo, si quisieramos obtener la fecha


del da siguiente, podramos hacer:
Calendar

calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, 1);

Si quisieramos la fecha de la semana


siguiente:

Calendar calendar = Calendar.getInstance();


calendar.add(Calendar.WEEK_OF_MONTH, 1);

Si quisieramos restar, debemos pasar valores


negativos. Por ejemplo, la fecha de hace dos
horas sera:

Calendar calendar = Calendar.getInstance();


calendar.add(Calendar.HOUR_OF_DAY, -2);

El Calendar se encarga de manejar automticamente la


magia de cambio de ao, ao bisiesto y dems temas.

Calendar

Convirtiendo un Calendar a Date


Date fecha = calendar.getTime();

Validar una fecha

private static boolean isFechaValida(String fechax) {


try {
SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy);
formatoFecha.setLenient(false);
formatoFecha.parse(fechax);
} catch (ParseException e) {
return false;
}
return true;
}

Comparacion
entre fechas

GregorianCalendar calDesde = new GregorianCalendar();


GregorianCalendar calHasta = new GregorianCalendar();

if (calDesde.after(calHasta)) {
//La fecha de calHasta es < que la fecha de calDesde
}
if (calDesde.before(calHasta)) {
//La fecha de calHasta es > que la fecha de calDesde
}

Vous aimerez peut-être aussi