some image

Codes and Tags

Manejo de fechas en Java Calendar : Impresion

Etiquetas: Blog, Programación No comments

Por lo general en durante el desarrollo de aplicaciones es común manejar fechas para registro de logs, saber la fecha y hora actual, realizar operaciones entre fechas para saber si existen productos vencidos o incluso, conocer si un usuario debe cambiar la clave porque paso el tiempo de caducidad de la contraseña.

De esta forma en Java es muy facil manejar las fechas con la clase Calendar, ya que nos permite realizar todas las operaciones comentadas anteriormente y reemplaza el uso de la clase Date, la cual esta Obsoleta (Deprecated).

Consideraciones a tener en cuenta al momento de utilizar la clase Calendar

1). La clase Calendar es una clase abstracta, por lo tanto no se pueden crear objetos nuevos con la instruccion new(). Se debe utilizar el metodo Calendar.getInstance(), el cual crea una instancia de la clase Calendar.

2) La clase Calendar para hacer mucho mas fácil su uso, utiliza constantes con nombres nemotécnicos, por ejemplo : DAY_OF_MONTH, YEAR, DAY_OF_WEEK, SUNDAY, SEPTEMBER, WEEK_OF_MONTH, WEEK_OF_MYEAR, AM, etc… Para conocer mejor el valor de cada variable y su uso recomiendo utilizar el API de Calendar.

3) Los meses del año vienen enumerados desde el 0 (January / Enero) hasta el 11 (December / Diciembre).

4) Los dias de la semana vienen enumerados desde el 1 (Sunday / Domingo) hasta el 7 (Saturday / Sabado).

5) Para formatear la fecha se puede utilizar el método format() de la clase String. ver Api String

Clase de ejemplo : 

 

import java.util.Calendar;

/**
 * Clase de ejemplo para el manejo de fechas en Java
 *
 * @author [d-m-k]
 * http://codesandtags.org
 */

public class ManejoFechasCalendar {
	public static void main(String[] args) {
		// Se obtiene una instancia a la clase Calendar
		Calendar fecha = Calendar.getInstance();

		/**
		 * Obteniendo la fecha actual
		 */
		System.out.println("[ Imprimiendo fechas ]\n");

		// 1. Obtiene la fecha actual con el formato Estandar
		System.out.println("Fecha actual : " + fecha.getTime());

		// 2. Obtiene la fecha actual en milisegundos desde el Ene. 1 de 1970
		System.out.println("Fecha actual en milisegundos : "
				+ fecha.getTimeInMillis());

		// 3. Obtiene la fecha actual utilizando zona horaria
		System.out.println("Fecha actual con zona horaria : "
				+ fecha.getTimeZone());

		// 4. Obtiene la fecha personalizada con el metodo format de String
		String fechaPersonalizada = String.format("%1$tY-%1$tm-%1$td",
				fecha.getTime());
		System.out.println("Fecha personalizada : " + fechaPersonalizada);

		// 5. Obtiene la Fecha personalizada con nombres en espaniol
		// Arreglo con los nombres de los meses del anio
		String[] mes = { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
				"Julio", "Agosto", "Septiembre", "Octubre", "Noviembre",
				"Diciembre" };
		// Arreglo con los nombres de los dias de la semana
		String[] diaSemana = { "Domingo", "Lunes", "Martes", "Miercoles",
				"Jueves", "Viernes", "Sabado" };
		// Formato de salida de la fecha
		fechaPersonalizada = "Hoy es "
				+ diaSemana[fecha.get(Calendar.DAY_OF_WEEK) - 1] + " "
				+ fecha.get(Calendar.DATE) + " de "
				+ mes[fecha.get(Calendar.MONTH)] + " del anio "
				+ fecha.get(Calendar.YEAR);
		System.out.println("Fecha personalizada : " + fechaPersonalizada);

		// 6. Hora actual utilizando el metodo format de String
		fechaPersonalizada = String.format("%1$tT", fecha.getTime());
		System.out.println("Hora actual : " + fechaPersonalizada);
	}
}

Salida

[ Imprimiendo fechas ]

Fecha actual : Sun Oct 16 20:02:20 CEST 2011
Fecha actual en milisegundos : 1318788140406
Fecha actual con zona horaria : sun.util.calendar.ZoneInfo[id="Europe/Paris",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=184,lastRule=java.util.SimpleTimeZone[id=Europe/Paris,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]
Fecha personalizada : 2011-10-16
Fecha personalizada : Hoy es Domingo 16 de Octubre del anio 2011
Hora actual : 20:02:20

About Edwin Torres

Related Posts

  • Logo Java
  • Logo Java
  • Logo Java
  • Logo Java

Add your comment