Como en este blog lo que se busca es publicar siempre el código preciso y exacto (aunque no siempre es bueno) vamos directo al punto, el método "getInstance()" nos devuelve un valor del tipo objeto, el cual debemos hacerle un cast a string para poder mostrarlo y manejarlo, podemos utilizar cajas de texto (jTextField), pero como vamos con lo esencial probemos obtener la hora del sistema. Para ello hagamos lo siguiente:
import java.io.*; import java.util.Calendar; class MostrarHora{ public static void main (String [] args) { String hora,hor,min,seg; Calendar fecha = Calendar.getInstance(); hor = Integer.toString(fecha.get(Calendar.HOUR_OF_DAY)); min = Integer.toString(fecha.get(Calendar.MINUTE)); seg = Integer.toString(fecha.get(Calendar.SECOND)); hora = hor+":"+min+":"+seg; System.out.println(hora); } }¿Que hacemos en este código exactamente?, pues nada complicado, solo creamos variables del tipo texto, hacemos un "Cast" a los valores que son devueltos por el objeto (int) y obtenemos la hora (hour_of_day), minutos (minute) y segundos (second). Luego los unimos todos separados por "dos puntos" ( : ) y la mostramos por pantalla. Ojo, no es necesario hacer el cast ni nada de eso, basta con mostrar por pantalla las variables, esto lo hago solo para mostrar como funciona y hacer un mejor ejemplo.
Claro, podemos hacer mas cosas, por ejemplo, mostrar la fecha junto con la hora.
import java.io.*; import java.util.Calendar; class MostrarFecha{ public static void main (String [] args) { String hora,hor,min,seg,mes,anio,dia; Calendar fecha = Calendar.getInstance(); mes = Integer.toString(fecha.get(Calendar.MONTH)); anio = Integer.toString(fecha.get(Calendar.YEAR)); dia = Integer.toString(fecha.get(Calendar.DATE)); hor = Integer.toString(fecha.get(Calendar.HOUR_OF_DAY)); min = Integer.toString(fecha.get(Calendar.MINUTE)); seg = Integer.toString(fecha.get(Calendar.SECOND)); hora = hor+":"+min+":"+seg; System.out.println(hora+" - "+dia+"/"+mes+"/"+anio); } }Si corres este ejemplo notaras que la fecha tiene un mes menor al actual, y esto ocurre porque los meses comienzan a trabajar desde 0, el resto de los valores si comienzan en 1, pero nada que un +1 no pueda resolver (existen métodos como el "roll" pero no lo explicare aún porque es para entorno gráfico).
Podemos setear valores utilizando el método "set()", y sumarlos o restarlos utilizando "add()", para simplificar las cosas veamos un ejemplo de ambos.
import java.io.*; import java.util.Calendar; class ModificandoFecha{ public static void main (String [] args) { String mes,anio,dia; Calendar fecha = Calendar.getInstance(); mes = Integer.toString(fecha.get(Calendar.MONTH)); anio = Integer.toString(fecha.get(Calendar.YEAR)); dia = Integer.toString(fecha.get(Calendar.DATE)); System.out.println(dia+"/"+mes+"/"+anio+": Actual"); /*Año, Mes y Dia, la hora tambien puedo cambiarla pero para el ejemplo con esto basta*/ fecha.set(1990,2,28); mes = Integer.toString(fecha.get(Calendar.MONTH)); anio = Integer.toString(fecha.get(Calendar.YEAR)); dia = Integer.toString(fecha.get(Calendar.DATE)); System.out.println(dia+"/"+mes+"/"+anio+": Seteada"); //Aqui resto dias fecha.add(Calendar.DATE, -50); mes = Integer.toString(fecha.get(Calendar.MONTH)); anio = Integer.toString(fecha.get(Calendar.YEAR)); dia = Integer.toString(fecha.get(Calendar.DATE)); System.out.println(dia+"/"+mes+"/"+anio+": Restado 50 dias"); //Aqui sumo años fecha.add(Calendar.YEAR, 10); mes = Integer.toString(fecha.get(Calendar.MONTH)); anio = Integer.toString(fecha.get(Calendar.YEAR)); dia = Integer.toString(fecha.get(Calendar.DATE)); System.out.println(dia+"/"+mes+"/"+anio+": Sumado 10 anios"); } }Solo debemos tener en cuenta que el mes comienza en 0 y que podemos "setear" la fecha de la variable a cualquier que nosotros queramos, esto un vistazo por encima de lo que es esta API (muy util y buena por cierto), para encontrar mayor información de los métodos utilizados y sus respectivos constructores podemos entrar a la Página del API.
Recibe notificaciones por correo