CLASE DATE DEL API JAVA. MÉTODOS BEFORE, AFTER, TOLOCALESTRING, TOGMTSTRING Y GETTIME. EJEMPLOS. (CU00924C)



Documentos relacionados
INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00921C)

CLASE CALENDAR Y GREGORIANCALENDAR DE JAVA. CONVERSIÓN DE FECHAS. EJEMPLOS. CAMBIOS DESDE JAVA 8 (CU00925C)

EL PAQUETE JAVA.UTIL DEL API JAVA. PRINCIPALES INTERFACES Y CLASES: STRINGTOKENIZER, DATE, CALENDAR, HASHSET, TREEMAP, TREESET...

REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C)

Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)

GENERACIÓN DE NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00908C)

EJERCICIOS RESUELTOS. EJEMPLOS CON NÚMEROS ALEATORIOS EN JAVA. RANDOM NEXTINT, NEXTDOUBLE, ETC. (CU00909C)

INTERFACES MAP Y SORTEDMAP DEL API JAVA. CLASES HASHMAP Y TREEMAP. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00922C)

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C)

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFACE COMPARABLE Y MÉTODO COMPARETO DE JAVA. COMPARAR OBJETOS (CU00913C)

EJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS. LA PALABRA CLAVE THIS (CU00652B)

Uso de centinelas para la toma de decisiones. Esquemas y diagramas de flujo. Ejemplos resueltos. (CU00167A)

LA MÁQUINA VIRTUAL JAVA (JVM). COMPILADOR E INTÉRPRETE. BYTECODE, CÓDIGO FUENTE Y CÓDIGO MÁQUINA. (CU00611B)

CONCEPTO O DEFINICIÓN DE HERENCIA EN JAVA Y EN PROGRAMACIÓN ORIENTADA A OBJETOS. QUÉ ES? EXTENDS. EJEMPLOS. (CU00684B)

LA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C)

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

GENERAR NÚMEROS ALEATORIOS EN JAVA. CLASE RANDOM Y MÉTODO NEXTINT. EJERCICIO EJEMPLO RESUELTO. (CU00672B)

INTERFACE LIST. CLASE LINKEDLIST DEL API JAVA. EJERCICIO RESUELTO Y DIFERENCIAS ENTRE ARRAYLIST Y LINKEDLIST (CU00921C)

La sintaxis básica para definir una clase es la que a continuación se muestra:

EJERCICIOS BÁSICOS DE PROGRAMACIÓN EN C RESUELTOS. VARIABLES, PRINTF, SCANF, CÁLCULOS. (CU00527F)

GENERAR NÚMEROS O SECUENCIAS ALEATORIOS EN C. SRAND Y RAND. TIME NULL. RAND_MAX. (CU00525F)

MATRICES, ARREGLOS O ARRAYS DE ELEMENTOS GRÁFICOS EN JAVA. EJEMPLO CON JLABEL Y JTEXTFIELD. (CU00930C)

INTERFACES SET Y SORTEDSET DEL API DE JAVA. CLASES HASHSET Y TREESET. EJEMPLO. DIFERENCIAS ENTRE ELLAS. (CU00924C)

REPASO ARRAYS O ARREGLOS UNIDIMENSIONALES EN JAVA. EJEMPLOS DE CÓDIGO. (CU00903C)

INTERFACE COLLECTION DE JAVA.UTIL DEL API JAVA. EJERCICIOS Y EJEMPLOS RESUELTOS. MÉTODOS ADD, REMOVE, SIZE. STREAMS (CU00917C)

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)

STRINGBUFFER, STRINGBUILDER JAVA. EJEMPLO. DIFERENCIAS ENTRE CLASES. CRITERIOS PARA ELEGIR. MÉTODOS. (CU00914C)

Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:

INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)

Notas técnicas de JAVA Nro. 8 Tip en detalle

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

EJERCICIOS DE PROGRAMACIÓN EN C. DIBUJAR UN ROMBO O DIAMANTE. CALCULAR SUMATORIOS. (CU00542F)

LA CLASE ARRAYLIST DEL API DE JAVA. MÉTODOS ADD, SIZE, ETC. CONCEPTO DE CLASE GENÉRICA O PARAMETRIZADA (CU00665B)

Tema 7: Polimorfismo. Índice

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Gestión y organización de artículos Clasificación en secciones, categorías y subcategorías Joomla. Ejemplos. (CU00422A)

INTRODUCCION A LA PROGRAMACION EN JAVA

IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B)

Lección 8: Potencias con exponentes enteros

La ayuda y referencia de Visual Basic y otros recursos como herramientas para los programadores. (CU00306A)

QUÉ ES Y PARA QUÉ SIRVE JAVASCRIPT? EMBEBER JAVASCRIPT EN HTML. ALTERNATIVAS. EJEMPLO SENCILLO. (CU00730B)

Modulo 11. Clases y Objetos en Java

EJERCICIOS EXCEL. Guardar el libro en tu pen drive, con el nombre PRACTICA1_ALUMNO_GRUPO.

EL MÉTODO EQUALS EN JAVA. DIFERENCIA ENTRE IGUALDAD E IDENTIDAD. COMPARAR OBJETOS. EJEMPLOS. (CU00662B)

MATRICES Y ARRAYS (ARREGLOS) MULTIDIMENSIONALES EN PHP. EJERCICIOS RESUELTOS. EJEMPLOS (CU00824B)

TIPOS DE BUCLES O CICLOS DE REPETICIÓN EN PHP: WHILE, DO WHILE Y FOR. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00822B)

Select Case Visual Basic. Palabras clave To, Is. Instrucción Según (Caso) Hacer. Ejemplos y ejercicios resueltos (CU00325A)

REDONDEAR A 2 O MÁS DECIMALES EN JAVA. PROBLEMA Y ERRORES DE PRECISIÓN DECIMAL Y REDONDEO. BIGINTEGER, BIGDECIMAL (CU00907C)

Iniciación a Microsoft Excel. Definición y descripción de una hoja de cálculo

Problemas de Recursividad

CONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS. EJEMPLOS Y DIAGRAMAS DE CLASES. (CU00696B)

USO DEL OBJETO JLIST

Clase adicional 2. Estructuras básicas de control. Temas

Sesión 2. TEMA 4. OBJETOS Y CLASES

Representación de números enteros: el convenio complemento a dos

Representación de números enteros: el convenio complemento a uno

Principios de Computadoras II

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java

TIPO Y MÉTODO ITERATOR. ERROR JAVA.UTIL.CONCURRENT MODIFICATIONEXCEPTION. RESUMEN DE TIPOS DE BUCLES EN JAVA. (CU00667B)

PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B)

Variables. a 9 4. Ahora ya es posible realizar operaciones con los números introducidos por teclado y guardados en las variables a y b.

QUÉ ES UNA INTERFAZ DE CLASE JAVA? CONCEPTO. SIGNATURA DE MÉTODOS Y CONSTRUCTORES. EJEMPLO CLASE STRING. (CU00648B)

Clases abstractas e interfaces en Java

DESCARGAR E INSTALAR EL CLIENTE FTP FILEZILLA. TRABAJAR EN UN SERVIDOR REMOTO. (CU00810B)

SOBREESCRIBIR MÉTODOS EN JAVA: TOSTRING, EQUALS. EJEMPLOS Y EJERCICIOS RESUELTOS. COMPARAR OBJETOS. (CU00694B)

Introducción a la Programación en Java

QUÉ ES JAVASCRIPT? PRINCIPALES USOS. SERVIDOR Y CLIENTE. HTML, CSS Y PROGRAMACIÓN. EFECTOS DINÁMICOS (CU01103E)

Relación 1. Sucesos y probabilidad. Probabilidad condicionada.

ARREGLOS EN. Nota: El autor.

Circunferencia que pasa por tres puntos

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.

CLASE ARRAYS DEL API JAVA. MÉTODOS PARA ARRAYS EQUALS (COMPARAR), COPYOF (COPIAR), FILL (RELLENAR). EJEMPLOS. (CU00676B)

Los números naturales

SISTEMAS DE NUMERACIÓN

Módulos Joomla Flash noticias de actualidad, contenido más leído o más popular y artículos archivados. (CU00433A)

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

CONFIGURACIÓN BÁSICA DE NOTEPAD++. AUTOCOMPLETAR Y OTRAS VENTAJAS DE NOTEPAD++. (CU00709B)

AJAX: EJEMPLOS EFECTOS Y USO EN DESARROLLOS WEB CON HTML, CSS, JAVASCRIPT VENTAJAS E INCONVENIENTES (CU01205F)

Programación 2. Grado en Estadística Aplicada. Curso Generación de números pseudoaleatorios. Manejo de ficheros de texto.

Categorías de métodos. Métodos constructores y destructores

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFACE ITERABLE DEL API DE JAVA Y MÉTODO ITERATOR. RECORRER COLECCIONES DE OBJETOS (CU00915C)

Diseño de algoritmos paralelos

StringBuffer, Math y Wrapper

INGRESAR DATOS CON UN CONTROL VISUAL EN JAVA. CLASE JTEXTFIELD Y MÉTODO GETTEXT. EJEMPLOS (CU00928C)

Funciones especiales

Ejercicios de Lenguaje Java y Entorno de Desarrollo

HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS

Estructuras de control selectivas

CONFIGURACIÓN BÁSICA DE NOTEPAD++ PARA CREAR PÁGINAS PHP. ALGUNAS VENTAJAS DE ESTE EDITOR COMO SUS EXTENSIONES O PLUGINS.

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

FUNDAMENTOS DE PROGRAMACIÓN. Practica 5 Números aleatorios

LA PALABRA CLAVE THIS EN JAVA. CONTENIDO NULL POR DEFECTO DE UN OBJETO. SOBRECARGA DE NOMBRES. EJEMPLOS (CU00654B)

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015

1. Algunas clases del paquete java.util

Cómo hacer divisiones con y sin decimales

Introducción a JQuery

Prof. Dr. Paul Bustamante

1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?

Transcripción:

APRENDERAPROGRAMAR.COM CLASE DATE DEL API JAVA. MÉTODOS BEFORE, AFTER, TOLOCALESTRING, TOGMTSTRING Y GETTIME. EJEMPLOS. (CU00924C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I Fecha revisión: 2029 Resumen: Entrega nº24 curso Lenguaje de programación Java Nivel Avanzado I. Autor: Manuel Sierra

INTRODUCCIÓN A partir de la introducción de la versión Java 8, el manejo de las fechas y el tiempo ha cambiado en Java. Desde esta versión, se ha creado una nueva API para el manejo de fechas y tiempo en el paquete java.time, que resuelve distintos problemas que se presentaban con el manejo de fechas y tiempo en versiones anteriores. Sin embargo, nos podemos encontrar con la necesidad de tener que trabajar con código que usa versiones anteriores o que sigue usando la clase Date del paquete java.util. Tener en cuenta que si se está usando una versión de Java igual o superior a la 8 no deben usarse estas clases sino las proporcionadas dentro del paquete java.time. En el paquete java.util encontramos la clase Date, que representa una fecha con precisión de milisegundos. De ella heredan otras clases como Time o Timestamp que no veremos de momento (estas clases pertenecen al paquete java.sql, y son utilizadas precisamente cuando una aplicación Java se conecta a bases de datos con campos fecha de precisión nanosegundos). DATE La clase Date fue de las primeras en este paquete y como tal ha ido sufriendo cambios. Bastantes métodos están deprecados. Un método deprecado (deprecated) es un método obsoleto de uso no recomendado. Estos métodos han sufrido mejoras o cambios que se reflejan en otros métodos o clases de uso recomendado en lugar del deprecated. Por compatibilidad se permite el uso de estos métodos, aunque se recomienda su sustitución por otros. El motivo por los que muchos de los métodos de esta clase son deprecated es sobre todo por temas de internacionalización en el formato de fechas que no se tuvieron en cuenta en las primeras versiones de Java. A pesar de todo, esta clase permite la interpretación de fechas como año, mes, día, hora, minutos y segundos y continua siendo bastante usada entre la comunidad de programadores. Algunas consideraciones que debemos tener en cuenta cuando usemos esta clase es que en todos los métodos que acepten o devuelvan años, meses, días, horas, minutos y segundos se trabaja de esta manera: - Un año y se representa por el entero y 1.900. Por ejemplo el año 1982 se representaría por el entero 1982 1900 = 82. De este modo, 82 representa 1982 y 92 representa 1992. - Los meses son representados desde 0 hasta 11, así Enero es 0 y Diciembre es 11. - Los días son normalmente representados desde 1 al 31. - Las horas desde 0 a 23.

- Los minutos van desde 0 a 59. - Los segundoss normalmente van desde 0 hasta 59. (Excepcionalmente pueden segundos 60 y 61 para los años bisiestos). existir los EJEMPLO DE USO DE DATE En el ejemplo que vamos a dar a continuación veremos cómo se puede usar la clase Date para representar una fecha determinada. Aprovechando que implementa la interfaz Comparable<Date>, compararemos 2 fechas para saber cuál va antes o después: /* Ejemplo Clase Date aprenderaprogramar.com */ import java.util.date; public class Programa public static void main (String []args) Date fecha1, fecha2; fecha1 = new Date(82,4,1,10,30,15); fecha2 = new Date(112,7,7,18,25,12); System.out.println("Fecha 1 Local: "+fecha1.tolocalestring()); System.out.println("Fecha 2 Local: "+fecha2.tolocalestring()); System.out.println("Fecha 1 en GMT: "+fecha1.togmtstring()); System.out.println("Fecha 2 en GMT: "+fecha2.togmtstring()); System.out.println("Fecha 1: "+fecha1.tostring()); System.out.println("Fecha 2: "+fecha2.tostring()); System.out.println(" Es la fecha 1 posterior a la fecha 2?: "+fecha1.after(fecha2)); El constructor que hemos utilizado es uno de los disponibles, en concreto Date(int year, int month, int date, int hrs, int min, int sec) donde el primer número representa el año, el segundo el mes, el tercero el día, el cuarto las horas, el quinto el minuto y el sexto los segundos. En este caso también no hay diagrama de clases, ya que tan solo hemos usado nuestra clase principal Programa. Al compilar nuestro Programa en BlueJ nos saldrá probablemente métodos deprecados como ya hemos comentado anteriormente. un mensaje alertando del uso de

El resultado de ejecución del programa nos devuelve la siguiente salida: Como podemos observar en la salida, imprimimos las fechas en varios formatos tanto la fecha 1, como la fecha 2. El primero es el formato local donde se representa en este caso las fechas con el formato del país donde nos encontremos. Esto se debe a que en tiempo de ejecución se recupera el formato de fecha correspondiente al ordenador donde se esté ejecutando la aplicación mediante una propiedad de la máquina virtual de java. Si estamos en España, recuperaremos la hora de España y si estamos en México la de México, en Chile la de Chile, etc. En algunos casos nos interesa crear una fecha partiendo de un String, para ello podemos utilizar el constructor utilizando la cadena String, pero si la fecha introducida en este caso no sigue el formato local deberemos de utilizar la clase DateFormat para parsear (transformar) el String y poder crear la fecha Date correspondiente. El segundo par de formatos es el formato GMT donde podemos observar que se muestra con 2 horas menos (diferencia entre la hora local de España que es donde hemos hecho el programa y la hora GMT). Mientras que el formato tercero es el que por defecto muestra Date. Por último observamos cómo podemos comparar 2 fechas, utilizando los métodos before o after (en este caso) además podríamos haber utilizado por supuesto el compareto. Un ejercicio interesante puede ser el calcular la diferencia en días entre 2 fechas dadas, así vamos a realizar este ejercicio: /* Ejemplo Clase Date aprenderaprogramar.com */ import java.util.date; public class Programa public static void main (String []args) Date fecha1, fecha2; long diferencia = 0; fecha1 = new Date(112,7,1,10,30,15); fecha2 = new Date(112,7,7,18,25,12); diferencia = fecha2.gettime() )-fecha1.gettime(); System.out.println("Diferencias en dias: "+diferencia/(3600000*24));

Las fechas creadas las interpretamos así: (112,7,1,10,30,15): (año, mes, día, hora, minutos, segundos): año 1900+112 = 2012, mes agosto (el mes cero es enero), día 1, hora 10, minutos 30, segundos 15. 7 que es Por tanto la primera fecha es el 1 de agosto de 2012 a las 10 horas 30 minutos 15 segundos. (112,7,7,18,25,12): de la misma forma llegamos a la conclusión de que la fecha representada es el 7 de agosto de 2012 a las 18 horas 25 minutos 12 segundos. Entre el 1 de agosto y el 7 de agosto hay 6 días (7-1 = 6). Si quisiéramos obtener los días totales ambos inclusive bastaría con sumarle uno al resultado. Al obtener la salida del programa efectivamente vemos que la diferencia en días es la siguiente: El métodoo gettime() aplicado sobre un objetoo object devuelve un entero largo (long) que representa el número de milisegundos desde el 1 de enero de 1970 a las 0 horas GMT (este es un valor de referencia que utiliza Java, podría haber sido otra fecha, pero los desarrolladores de Javaa eligieron esta). Para pasar de milisegundoss a segundoss hemos de dividir por 1000 y para pasar de segundos a días hemos de dividir por 24 horas * (3600 segundos/hora). Resulta una operación: numero / ( 3600000 *24) de forma que el valor de milisegundos numero queda transformadoo en días. En resumen lo que hacemos es obtener la diferencia en milisegundos entre las dos fechas y transformarlo a días. El resultado lo almacenamos en un tipo long (entero largo) de forma que si lleva decimales los decimales quedan truncados. Nota: No todos los métodos de la clase Date están deprecados pero sí bastantes de ellos, por eso se recomienda utilizar para versiones de Java previas a la 8 la clase DateFormat para formatearr y parsear cadenas String a fechas y usar la clase Calendar para conversiones de fechas y sus campos, cuestión que no vamos a abordar ahora. Paraa versiones Java a partir de la 8 se recomienda usar las clases del paquete java.time, cuestión que tampoco vamos a abordar ahora. Próxima entrega: CU00925C Acceso al curso completo en aprenderaprogramar.com --- > Cursos, o en la dirección siguiente: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=58& &Itemid=180