Obtener la hora en Java

25/ene/2007 Java , , 71 Comentarios
java

Para obtener la hora del sistema, Java nos proporciona la clase Calendar. Mediante dicha clase podremos obtener de una forma separada cada uno de los valores que componen una hora. Entendiendo como hora los segundos, minutos y hora.

Lo primero que tendremos que hacer será instanciar la clase Java Calendar. Para ello podemos hacerlo de dos formas. La primera consiste en obtener una instancia directamente de Calendar:

  1. Calendar calendario = Calendar.getInstance();

La otra es instanciar la clase GregorianCalendar. Lo cual se haría mediante la siguiente línea de código:

  1. Calendar calendario = new GregorianCalendar();

GregorianCalendar es el formato de calendario soportado por una gran parte del mundo. El cual es una mezcla del calendario Juliano y Gregoriano. Dicho calendario fue instituido el 15 de octubre de 1582.

Vamos, que en ambos casos vamos a trabajar con el mismo calendario.

Lo siguiente será declarar las variables que van a almacenar la hora. Como hemos dicho al principio, dicha hora irá dividida en tres partes. Consecuentemente tendremos 3 variables:

  1. int hora, minutos, segundos;

Ahora calcularemos su valor. En la clase Calendar existe un método get(int valor). Dicho método recibe un entero, el cual refleja el valor del calendario que queremos obtener: la hora, el día, los minutos,....

Como la idea es que no nos sepamos que entero está asociado a que valor, la clase Calendar nos proporciona una serie de constantes que nos ayudarán a encontrar dichos valores. Así tendremos las siguientes asociaciones:

  • Calendar.HOUR_OF_DAY, es la hora del día en formato 24 horas
  • Calendar.HOUR, el la hora en formato 12 horas
  • Calendar.MINUTE, representa a los minutos
  • Calendar.SECOND, serán los segundos

Una vez que conocemos esto, solo nos queda aplicar dichos valores al método get y asociarlos a las variables. Veamos el código:

  1. hora =calendario.get(Calendar.HOUR_OF_DAY);
  2. minutos = calendario.get(Calendar.MINUTE);
  3. segundos = calendario.get(Calendar.SECOND);

Solo nos quedará volcar los datos por pantalla. Esto, es una línea de código:

  1. System.out.println(hora + ":" + minutos + ":" + segundos);

Vídeos sobre Java Básico

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

71 comentarios en “Obtener la hora en Java”

Víctor Cuervo

polo23

Desmond no debia morir :'(

Víctor Cuervo

yolo

como se hace para que si pongo los segundos se actualice cada segundo que pase ?¿?¿?¿?

Víctor Cuervo

Víctor Cuervo

@Violeta. Genial. Nos alegra mucho que te haya servido.

Víctor Cuervo

Violeta

Excelente aportación, me quedó perfecto.

Víctor Cuervo

Víctor Cuervo

@Gamma ray, me alegro muchísimo. 😀

Víctor Cuervo

Gamma ray

Gracias hermano!! funciona perfecto y me sirvio de maravilla!!!

Víctor Cuervo

Abyss

@pedro

public class MensajeEnBaseALaHora {

        Calendar cal;
        int h;

        public String getMensaje()
        {
                cal = Calendar.getInstance();
                h = cal.get(Calendar.HOUR_OF_DAY);

                if ( h >= 7 && h = 13 && h = 20 && h = 0 && h < 7 ) {
                    return "Es de madrugada.";
                }
                
                /*
                 * Es posible que las horas no estén bien definidas con respecto
                 * a su mensaje. De todos modos esto sólo es un ejemplo para que
                 * captes una forma de hacer lo que quieres.
                 */
                
                return "Debe haber algún punto flaco en el if si sale este retorno.";
        }
}
Víctor Cuervo

Ramón

Con lo fácil que es hacer esto:

private String getActualTime(){
Date dtFechaActual = new Date ();
DateFormat dfLocal = new SimpleDateFormat(“HH:mm:ss”);

return dfLocal.format(dtFechaActual);
}

Víctor Cuervo

juan

hola quiero saber como hago un programa que calcule las temperaturas Cº- Fº, Cº – Kº, Fº – Kº, Fº – Cº, Kº – Cº, Kº – Fº. pero con el entorno grafico me pueden ayudar porfa

Víctor Cuervo

Víctor Cuervo

@Kevin,

Me alegro que se haya solucionado tu problema. 😀

Víctor Cuervo

Kevin

Hola muchas gracias por haber atendido mis dudas, no obstante ya pude dscubrir que yo al intentar correr este programa desde una clase (.java) en netbeans, no se puede llamar a la funcion como main en el momento de correrla en el main, disculpe si suena algo confuso pero no se me ocurre otra manera de explicarlo… Pero de todos modos agradesco su ayuda.

Víctor Cuervo

Víctor Cuervo

@Kevin,

No te preocupes. Todos tenemos dudas sobre las cosas. La parte de String[] args es para preparar el método main para recibir parámetros en la invocación. No le muestres mucha atención.

De todas maneras. ¿Qué error te genera?

Yo te recomendaría que echaras un ojo al artículo
http://lineadecodigo.com/java/hola-mundo-en-java/

Para ayudarte con estos temas. Y no dudes en seguir preguntado.

Suerte.

Víctor Cuervo

Víctor Cuervo

@Fabian,

¿Qué error te sale?

Víctor Cuervo

Kevin

Hola! Muchas Gracias por la informacion, pero he tenido un problema para correr el programa en el Main, no me queda muy claro como debo correr la parte del String[] args… disculpe si es una pregunta muy tonta pero apenas estoy aprendiendo a utilizar java con netbeans

Víctor Cuervo

Fabian

porque a la hora de poner el hora =calendario.get(Calendar.HOUR_OF_DAY); me sale error en el get????

Víctor Cuervo

Osvaldo Contreras

Una pregunta. Es necesario tener instalado el JCalendar?? Gracias!

Víctor Cuervo

lineadecodigo

@Yeison Soto,

Me alegro que te haya servido. Espero poder poner el código completo en algún momento.

Víctor Cuervo

Yeison Soto

me ha quedado muy claro, era lo que nececitaba y de un aforma muy practica y eficiente.
Gracias….

Víctor Cuervo

lineadecodigo

@Yeison Soto,

Puedes acceder a cada una de las partes: segundos, minutos y horas. Y ejecutar restas por separado. Teniendo en cuenta si la hora está por encima o por debajo, ya que implicará llevarte tiempo

Por ejemplo. Entre 11:42 y 3:25 es 11-3 y por otro lado 42-25. Lo cual daría 8:17. Es sencillo.

Pero si tienes 11:25 y 3:45. Las restas darían negativo. En este caso a 60 restamos el número negativo y a las horas le quitamos 1.

11-3 = 8;
25-45 = -20; entonces 60-20= 40 y a 8 le quitamos 1 = 7. Serían 7:40

Si el negativo es en las horas, se lo restamos a 12. Es decir, si tenemos 3:25 y 11:45

3-11 = -8; 12-8=4.
25-45 = -20; 60-20=40 y a 4 le quitamos 1 = 3. Serían 3:40.

Ojo, todo pensando en un reloj AM/PM.

Espero que te haya orientado un poco. Nos ponemos manos a la obra para poder publicar el código por completo.

Víctor Cuervo

Yeison Soto

Hola necesito restar dos horas, es decir saber cuanto tiempo (horas) han transcurido entre 11:42 y las 3:25

me pueden ayudar???

Víctor Cuervo

lineadecodigo

@Andre, @Carlos Abner,

Me alegra que os hayan servido los ejemplos.

Víctor Cuervo

André

Gracias, tantas veces lineadecodigo =)

Víctor Cuervo

carlos abner

exelente gracias por lo del tarot

Víctor Cuervo

Marco

Quisiera saber si en java con lo del gregorian calendar o algun otro metodo se podira sumar las horas y miutos para asi poder sacar de que el monto de esas horas porfavor ayuda Gracias

Víctor Cuervo

ARTURO

Q TAL AMIGOS COMO ESTAN PORFA ME PODRIAN AYUDAR A crear un programa que me diga los años, los meses, los dias, las horas, los minutos y los segundos que he vivido hasta ahora. GRACIAS

Víctor Cuervo

lineadecodigo

@Erick,

Las estás recogiendo en las líneas

sSql += “DATE_FORMAT(EMR_FECHA_ENTRADA, ‘%d/%m/%Y’) EMR_FECHA_ENTRADA, “;
sSql += “DATE_FORMAT(EMR_FECHA_SALIDA, ‘%d/%m/%Y’) EMR_FECHA_SALIDA

Y sin la hora. No te están saliendo?

En http://www.w3schools.com/SQL/func_date_format.asp
Puedes encontrar buena información sobre la función Date_Format

Víctor Cuervo

Erick

String sSql = “SELECT EMR_EML_CLAVE, EML_NOMBRE, “;
sSql += “COUNT(EMR_EML_CLAVE) AS EMR_REGISTROS, “;
sSql += “MAX(CASE WHEN EMR_FECHA_SALIDA IS NULL THEN ‘1’ ELSE ‘0’ END) AS EMR_ESTATUS, “;
sSql += “DATE_FORMAT(EMR_FECHA_ENTRADA, ‘%d/%m/%Y’) EMR_FECHA_ENTRADA, “;
sSql += “DATE_FORMAT(EMR_FECHA_SALIDA, ‘%d/%m/%Y’) EMR_FECHA_SALIDA “;
sSql += “FROM EMPLEADOS_REGISTROS “;
sSql += “INNER JOIN EMPLEADOS “;
sSql += “ON EMR_EML_CLAVE = EML_CLAVE “;
sSql += “WHERE EMR_FECHA_ENTRADA BETWEEN ‘” + sFilter1 + “‘ AND ‘” + sFilter2 + “‘ “;
sSql += “GROUP BY EMR_EML_CLAVE “;

…como puedo obtener d la BD con est query las fechas exactas omitiendo las horas???

Víctor Cuervo

Alex

necesito el codigo completo pongalo en algun comentario o en la pag

Víctor Cuervo

pplouis

Gracias, me sirvio perfecto!

Víctor Cuervo

ricardo

hola por favor me ayuda hacer un programa que lea la hora, minutos y segundos y me imprima una hora y un minuto despues

h m seg h m seg h m seg
5 :28 : 30 5: 59 : 59 5: 28: 59
5 :38 :31 6: 00: 00 5: 29: 00

Víctor Cuervo

tomy

hola a todos me podrian ayudar sobre como hacer que aparecer el tiempo que tarda en ordenar numeros y hacer que aparesca en la corrida los milisegundos k tarda en efectuar la operacion

Víctor Cuervo

Wendy

Hola a todos ojala me puedan ayudar con un problema que tengo: la hora actual que me devuelve java con la clase calendar esta con 6 horas de mas, la hora de la pc me la muestra normal pero ya ejecutando la mi programa aumenta , me urge resolverlo, creo que alguien mas ya presento este problema ojala y me pudieran ayudar!!

muchas gracias por su atención

Víctor Cuervo

ana

hola quisiera saber si me podrian ayudar tengo q hacer un programa en el cual me muestre la hora de la pc, y a su ves tenga la posibilidad de calcular a traves de la hora transcurrida un monto, el cul debo cargar yo el precio por hora por ejemplo,por minuto etc. alguien podria ayudarme? gracias

Víctor Cuervo

Héctor Avila

Pues mira Claudia el programa podría ser así:

(incluir librería) import javax.swing.JOptionPane;

int iMes, iDia, iRes, iAno;
int[] in = new int[8];
String sz_ano ;

iAno = Integer.parseInt(JOptionPane.showInputDialog(“Introduzca AÑO de nacimiento”));
iMes = Integer.parseInt(JOptionPane.showInputDialog(“Introduzca MES de nacimiento”));
iDia = Integer.parseInt(JOptionPane.showInputDialog(“Introduzca DIA de nacimiento”));

iRes = iAno + iMes + iDia ;

sz_ano = Integer.toString(iRes);

for (int i=0; i < sz_ano.length();i++)
{
in[i] = Integer.parseInt(“”+sz_ano.charAt(i));
in[4] += in[i];
}
in[5] = in[4]%10;
in[6] = in[4]/10;
in[7] = in[5] + in[6];
JOptionPane.showMessageDialog(null,in[7],”EL RESULTADO ES : “,JOptionPane.INFORMATION_MESSAGE);
System.exit(0);

}

Víctor Cuervo

claudia

hola necesito que me ayuden a creae un programa e java, que me lea el tarot que me sume el año mas la fecha de nacimiento mas el mes y de ahi sumado, al finel me queden 2 numeros ese sea el tarot
ejemplo:
1966+
16
02
—–
resultado=1984
1984= 1+9+8+4= 22
2+2=4 que me de este en pantalla

Víctor Cuervo

Jesús

Excelente!! muchas gracias

Víctor Cuervo

junior

a el calendario debo hacerlo con un vector y una matriz en java, gracias…

Víctor Cuervo

junior

hola amigos si me pueden ayudar a realizar un calendario con un mes x del año, que al introducir un numero x, me arroje cual es el dia de la semana , ejemplo introduzco 1 y me imprime que es lunes, por favor si me pueden ayudar, ah lo necesito en java…

Víctor Cuervo

junior

hola amigos si me pueden ayudar a realizar un calendario con un mes x del año, que al inroducir un el numero de x dia me arroje cual es el dia de la semana , ejemplo introduzco 1 y me imprime que es lunes, por favor si me pueden ayudar…

Víctor Cuervo

yulia

como hago que un TimerTask consiga la hora de la computadora

Víctor Cuervo

javier

hola quisiera saber si alguiern me puede ayudar como puedo hacer para restar o sumar una exprecion en HH:MM y otra exprecion en MM:SS

Víctor Cuervo

Ricardo

gracias el aporte que necesitabamos

Víctor Cuervo

panxox

Gracias por el dato de la hora!!

Víctor Cuervo

Adriana

para jose el del mensage de ocutbre 2007.
de seguro ya sabes cual es el problema pero aquí va lo único que tienes que hacer es donde quieres obtener nuevamente la hora o el minuto vuelves a declarar
calendario = new GregorianCalendar();
obien haces un método donde obtenga la hora y allí dentro pones la linea anterior para cuando lo llames vuelva a crearse el objto con la nueva hora

Víctor Cuervo

ex

que tal…no se si ayan dado cuenta que la clase de java (Calendar) tiene un problema al jalar la hora del sistema le agrega 6 horas mas, kien de ustedes sabe por que lo hace y como se resuelve????.

Víctor Cuervo

Alfredo

Tengo problemas con la hora de java, no me da la hora correcta.
la hora del sistema operativo esta bien pero a la hora de usar Date,Calendar,Gregorian me dan la descontrolada.

java maneja su propia bases de datos de zonas horarias, mi problema quizas se deba por el cambio de uso horario que hubo en mi pais Venezuela.

porfavor si alguien me puede ayudar??

Víctor Cuervo

flor

quisiera un calendario agenda en java si me podrein ayudar please

Víctor Cuervo

diana

Ola, pues necesito un código, parqa crear un buscaminas, q este conectado con un cronómetro simultáneamente, y no tengo la menor idea, si hay alguien caritativo q por favor me ayude, es un projecto para este miercoles. Gracias

Víctor Cuervo

juan no bel

en java quisiera saver como calcular la fecha despues de transcurrir unos dias ejemplo:

hoy 26/02/2008 le agregamos 3 dias despues y esto es lo que quiero obtener 29/02/2008 la fecha pasado los dias

Víctor Cuervo

Nash

Hola a todos, me gustaria saber como puedo restar dos fechas y que el resultado me lo de en días, por ejemplo: calcular el numero de dias entre las fechas Enero 17 de 1972 y Julio 20 de 1973, y asi calcular la cantidad de dias entre cualquier dos fechas, me gustaria que me respondan por favor, muchas gracias.

Víctor Cuervo

PICCORO

la razon de porque no saco los microsegundo matemaicamente de los milisegundos es porque pierdo tiempo de ciclo de reloj dividiendo la cantidad. obvio supongo espero lo hayan sabido, que cada instruccion para mi es consumo de tiempo y reloj.

Víctor Cuervo

PICCORO

QUERIA LOS MICRO SEGUNDOS PERO NO PUEDO OBTENERLOS, solo la JVM, lleg a milisegundos, pero que se le hace, es solo un emulador VM de un sistema que supuestamente seria como linux jah!

Tambien tengo esto, para ejecutar solo cada minuto, segundo o etc:

segold = segnow;
segnow = ( Integer.parseInt( new SimpleDateFormat(”ss”).format( datesys ) ) );

minold = minnow;
minnow = ( Integer.parseInt( new SimpleDateFormat(”mm”).format( datesys ) ) );

if( minold != minow ) // uncomment para cada minuto

if( segold != segnow) // descoment para cada segundo

uff eso taba SUPPPER DIFICIL, mejor descanso…… un poco….seguro era un pedazo de codigo para alguna aplicacion de guindows…. seguriiito!

Víctor Cuervo

PICCORO

bueno investigando un poco puedo obtener la hora de un modo mas profesional y facil:

datesys = new Date() ;

dateinstance = datesys;
timeinstance = datesys;

currentdate = dateformat.format( “yyyy-MM-dd” );
currenttime = timeformat.format( “HH:mm:ss” );

si tengo que compararlas , pensemos:
en el lapso de un minuto, para cualquier ciclo la hora sera igual, asi que las paso a string y veo si son “equals”, la variacion sera en los segundos:

segold = segnow;
segnow = ( Integer.parseInt( new SimpleDateFormat(“ss”).format( datesys ) ) );
if(segold != segnow)
{ //no son iguales, cambio }
else
{ // aun esta en el dia,ano,mes, hora,minuto, y de paso segundo actual}

lo que necesito es comparar en un cuclo si ha transcurrido un minuto…

Víctor Cuervo

Edison Rivadeneira

Hola amigos, quisiera saber como hacer un cronometro q comiense desde 00:00:00 y al dar click en un boton que se inicie. Para q luego de un tiempo determinado salga un mensaje de q se le termino el tiempo. O cuando acabe de resolver un o el juego se pare y lo guarde con el nombre de el usuario.

Víctor Cuervo

jesus

hola amigo tengo un problema, necesito hacer un programa en jaba de un identificador de llamadas telefonicas que marque el lada y que tenga un cronometro que comienze cuando se ponga conteste el telefono y que acabe cuando se cualega el telefono solo seria un ejemplo no se implemetaria de verdad solo es para una clase
preguntaba si me podias ayudar porque de esto no se absolutamente nada gracias
de antemano muchas gracias

Víctor Cuervo

giorgio

hola amigos me puedenayudar necesitos problemas resueltos de java para developer para practicar pork recien estoy comenzando a utilizar el programa y necesito problemas de aplicacion por favor
les agradeceria mucho

Víctor Cuervo

JAFG

gracias por la ayuda hermano, es bueno saber que se cuenta con personas en este mundo!!!!!

Víctor Cuervo

Jose

este codigo nos sirve para obtener la hora solo en el instante que se ejecuta el programa, pero si deseo volver a obtener la hora un tiempo despues me sigue leyendo la hora en que se ejecuto el programa, como puedo hacer para que cada que quiera leer la hora se lea la hora actualizada?

Víctor Cuervo

eva

good!

Víctor Cuervo

Luis Alberto

gracias, ahora. Una pregunta urgente. ¿Cómo puedo sacar la velocidad del procesador para determinar cuanto tiempo tarda en procesarse los ciclos anidados?

Víctor Cuervo

wenzpipe

Gracias por la ayuda para obtener la hora del sistema

Víctor Cuervo

pedro

hola amigos tengo una tarea se trata de:
“poner un mensaje de acuerdo ala hora del sistema”
ejemplo:
si es de mañana dira “buenos dias” junto a un sonido “midi” y si es de tarde dira “buenas tardes” con otro sonido

Mi gran problema es que no puedo almacenar en una variable la hora del sistema para poder compararlo

que me contesten amigos se los agredeseria gracias

Víctor Cuervo

XXXXXX

necesito un metodo que me ponga en variables la hora del sistema
pero segun lo que se dice aqui me marca error
dice que la variable calendario no esta definida
¿donde la defino?

Víctor Cuervo

FiWitch

Hola, estamos implementando un gestor de grabación de programas de televisión y no sabemos si la clase “calendar” de Java nos podría ser útil para trabajar con las colisiones entre fechas, ya que no tenemos demasiada idea de como utilizar ni siquiera Java. somos un poco nuevas.
Gracias

Víctor Cuervo

lola

oye tengo una tarea en la que tengo que utilizar estos metodos para hacer como un tipo de cronometro, el cual se inicie en el momento que yo empieze una busqueda dentro de mi programa y se detenga cuando haya encontrado al dato que quiero.
la verdad no tengo ni idea de como hacerle puesto que apenas estoy aprendiendo.

Víctor Cuervo

manuel

oye tengo una tarea en la que tengo que utilizar estos metodos para hacer como un tipo de cronometro, el cual se inicie en el momento que yo empieze una busqueda dentro de mi programa y se detenga cuando haya encontrado al dato que quiero.
la verdad no tengo ni idea de como hacerle puesto que apenas estoy aprendiendo.

me podrias ayudar porfavor?

Víctor Cuervo

MaRiO

como hago para hacer un calendrio en java de todos los años y e el que se especifiquen lo dias feriados ??

Víctor Cuervo

rafa

como se hace para conectar java con exel y aplicar los numeros aleatorios en exel

Víctor Cuervo

lineadecodigo

No se si lo que buscas es lo siguiente “Hora en milisegundos con Java”. O algo para obtener mayor precisión.

Víctor Cuervo

Gerardo

Y como le hago para poder conocer los microsegundos?

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*


*