Publicado el Dejar un comentario

Cómo añadir o restar horas, minutos o segundos a una fecha en java con la clase Calendar

A veces es necesario, en nuestros programas java, incrementar o restar de una fecha en cierta cantidad de horas, minutos o segundos. Usando la clase Calendar de este lenguaje es muy sencillo hacer este tipo de operaciones con el tiempo.

Aquí les dejo el código auto-explicativo:

import java.util.Calendar;

/**
 *
 * @author scyasig
 */
public class OperacionesCalendar {
    
  public static void main(String[] args) {
        
    // Obtiene fecha y hora actuales
    Calendar fecha = Calendar.getInstance();
    System.out.println("La fecha actual es: " + 
      String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", fecha));
        
    // Incrementa 30 segundos la fecha 
    fecha.add(Calendar.SECOND, 30);
    System.out.println("La fecha actual es: " + 
      String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", fecha));

    // Incrementa 30 minutos la fecha
    fecha.add(Calendar.MINUTE, 30);
    System.out.println("La fecha actual es: " + 
      String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", fecha));
        
    // Restar 30 horas la fecha
    fecha.add(Calendar.HOUR, -30);
    System.out.println("La fecha actual es: " + 
      String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", fecha));
        
  }
  
}

Al ejecutar el código anterior dará la siguiente salida (dependiendo de la hora en que sea ejecutado):

La fecha actual es: 2017-01-23 21:18:23
La fecha actual es: 2017-01-23 21:18:53
La fecha actual es: 2017-01-23 21:48:53
La fecha actual es: 2017-01-22 15:48:53

Espero y les sea útil.

¡Hasta la próxima!

 

Publicado el Dejar un comentario

Dar formato a una fecha con String.format() de java usando un Calendar.

El siguiente código usa la clase Calendar para almacenar la fecha y hora actual y dar formato a dicha fecha usando el método format() de la clase String:

public class StringFormat {
  public static void main(String[] args) {
    Calendar fecha = Calendar.getInstance();
    System.out.println("La fecha actual es: " + 
      String.format("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", fecha)); 
  }
}

Ejecutando el código anterior mostrará como resultado la fecha con el siguiente formato:

La fecha actual es: 2017-01-23 20:33:30

¡Espero les sea útil! ¡Saludos!

Publicado el Dejar un comentario

Rellenar con espacios a la derecha un texto con java.

En ocasiones queremos generar un texto de un ancho fijo y rellenar con espacios los caracteres que no son utilizados o ocupados por la cadena de caracteres que contiene, por ejemplo, tenemos una cadena con el contenido “ABC” y queremos generar una cadena de 10 caracteres con el texto “ABC” cargado a la izquierda, y el resto de los caracteres a la derecha, rellenarlos con espacios.

Para eso podemos usar el método format de la clase String, de esta forma:

String textoFormateado = String.format("%-10s", "ABC");
System.out.println("[" + textoFormateado + "]");

El código anterior arrojaría el siguiente resultado:

[ABC       ]

Los corchetes cuadrados se agregaron para apreciar los espacios en la cadena de texto.

Si quisiéramos usar este mismo método para rellenar con otro caracter, usaríamos el método replace de la clase String para reemplazar los espacios por el caracter deseado; así:

String textoFormateado = String.format("%-10s", "ABC").replace(' ','*');        
System.out.println("[" + textoFormateado + "]");

Lo que daría como resultado:

[ABC*******]

Si en lugar de usar el formato “%-10s” en el método format, usáramos “%10s” los espacios y/o asteriscos, aparecerían  a la izquierda del texto.

Les dejo de tarea este ejercicio.

Espero y les sea útil este tip. ¡Saludos!