16
Manejo de Fechas en Java

Manejo de Fechas en Java 2

Embed Size (px)

DESCRIPTION

PROGRAMACION EN JAVA

Citation preview

Page 1: Manejo de Fechas en Java 2

Manejo de Fechas en Java

Page 2: Manejo de Fechas en Java 2

Clase Date

Un objeto Date representa una hora y fecha concreta con precisión a milisegundos.

Esta clase permite manipular una fecha y obtener información de la misma de una manera sencilla sin embargo ofrece un nulo soporte para la internalización de aplicaciones por lo que ha partir de la versión JDK 1.1 se incorporo una nueva clase llamada Calendar que amplia las posibilidades a la hora de trabajar con fechas.

No obstante, y aunque la mayoría de los métodos de esta clase estén obsoletos (deprecated) es necesario conocer el funcionamiento de los métodos que siguen vigentes.

Esta clase se encuentra en el paquete java.utily para poder usarla se debe de importar a nuestra clase.

import java.util.Date;

Page 3: Manejo de Fechas en Java 2

Métodos Vigentes

Uno de los dos constructores de Date que quedan vigentes es el constructor por defecto. Utilizando este crearíamos un objeto Date representando la fecha y la hora actuales:

Date dt = new Date()

Através del método toString() obtendríamos la representación en forma de cadena y hora actuales por ejemplo:

Date fechaActual = new Date();System.out.println(fechaActual.toString());

• En pantalla imprimiría algo similar a esto (suponiendo que esa fuera la fecha y hora en que se ejecuta la aplicación):

Sun Aug 22 07:43:58 COT 2011

Page 4: Manejo de Fechas en Java 2

Métodos Vigentes

Internamente el objeto Date guarda la información de la fecha y hora como un numero de tipo long que representa la cantidad de milisegundos transcurridos desde el día 1 de enero de 1970 hasta el momento de la creación del objeto, este numero se puede obtener usando el método getTime() de la clase Date.

En este sentido, el segundo constructor vigente de la clase Date permite crear una fecha a partir de esta cantidad numérica por ejemplo:

Date fecha = new Date(1282482641707L);

System.out.println(

"Fecha:“ + fecha.toString());

Page 5: Manejo de Fechas en Java 2

Otros Métodos Interesantes

long getTime(): Devuelve el número de milisegundos desde el 1 de Enero de 1970.

void setTime(long time): Establece el número de milisegundos desde el 1 Enero del 1970.

boolean equals(Object obj) : Compara dos fechas, devuelve true si son exáctamente iguales (a nivel de milisegundo, no de día), false de lo contrario.

boolean before(Date when) : Devuelve true si una fecha es anterior a otra.

boolean after(Date when) : Devuelve true si una fecha es posterior a otra

IMPORTANTE: No se deben usar los métodos getYear(), getMonth(), getHour(), etc. ya que están obsoletos, para esto se deberá usar la clase java.util.Calendar

Page 6: Manejo de Fechas en Java 2

Clase Calendar

La clase java.util.Calendar sirve para convertir entre un objeto de tipo Date y un conjunto de campos enteros como año, mes, día, hora, etc.

Se trata de una clase abstracta, las distintas subclases de la clase Calendar interpretan el objeto Date según las reglas de un calendario especificado.

Dependiendo del lugar del mundo en el que se encuentre, se utiliza un calendario distinto En España se utiliza el calendario Gregoriano, implementado en la clase java.util.GregorianCalendar (existen otros muchos calendarios, como para Japonés, calendario histórico astronómico arábico, etc.)

http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html

Page 7: Manejo de Fechas en Java 2

Métodos Calendar

El método estático getInstance() de la clase Calendar nos permite obtener un objeto Calendar que representa el instante actual, con el Calendario por defecto de la máquina en la que se ejecuta el programa.

Calendar miFecha = Calendar.getInstance();

El método int get(int field) nos devuelve el valor del objeto Date para el campo indicado por field. Los distintos campos están definidos como constantes públicas en la clase Calendar: YEAR, MONTH, DAY, HOUR, etc.

int año= miFecha.get(Calendar.YEAR);int mes = miFecha.get(Calendar.MONTH);

Importante notar que los meses empiezan a contar en cero, no en uno (enero es el mes cero)

Page 8: Manejo de Fechas en Java 2

Otros Métodos Interesantes

• Date getTime(): Devuelve el objeto Date interno

• Long getTimeInMillis(): Devuelve el número de milisegundos desde el 1 de Enero de 1970.

• void set(int field, int value): Selecciona el valor para un determinado campo.

• boolean equals(Object obj): Compara dos objetos Calendar.

• boolean before(Date when): Devuelve true si una fecha es anterior a otra.

• boolean after(Date when): Devuelve true si una fecha es posterior a otra.

• void add(int field, int amount): Incrementa el valor de un determinado campo.

Page 9: Manejo de Fechas en Java 2

Ejemplo 1

Page 10: Manejo de Fechas en Java 2

Ejemplo 2

Page 11: Manejo de Fechas en Java 2

Clase DateFormat

Un objeto Date representa una hora y fecha concreta con precisión de un milisegundo.

La clase java.text.DateFormat se utiliza para obtener una determinada fecha en forma de cadena de texto, utilizando un conjunto de formatos preestablecidos.

El método estático getInstance() nos permite obtener un objeto DateFormat con los datos por defecto de la máquina en la que se ejecuta el programa (idioma, localización, etc.).

Las distintas variantes del método format nos permiten obtener la fecha/hora en diversos formatos según se especifique.

Page 12: Manejo de Fechas en Java 2

Ejemplo 1

Page 13: Manejo de Fechas en Java 2

Ejemplo 1

Page 14: Manejo de Fechas en Java 2

Clase SimpleDateFormat

La clase SimpleDateFormat nos ayuda a mostrar las fechas en el formato que queramos o a reconstruirlas a partir de una cadena de texto.

Para convertir un objeto Date a un String veamos un ejemplo:

Al crear un objeto SimpleDateFormat debemos de pasarle un patron o mascara con el cual esta clase transformara el objeto Date a una cadena.

En la API de SimpleDateFormat podemos ver todaslas opciones para la máscara de fecha y hora.

Page 15: Manejo de Fechas en Java 2

Clase SimpleDateFormat

Para reconstruir una fecha a partir de la cadena de texto veamos un ejemplo:.

El método parse() realiza la reconstrucción de una fecha pero necesita estar dentro de un bloque try/catch para controlar una posible excepción al momento de la reconstrucción.

Page 16: Manejo de Fechas en Java 2

Preguntas?