jump to navigation

Obtener la hora en Java Enero 25, 2007

Publicado por lineadecodigo en : Java , trackback

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:

Calendar calendario = Calendar.getInstance();

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

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:

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:

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

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

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

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

Visualizar el ejemplo | Descargar el código

Articulos Similares:

|- Foro sobre Java Básico

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 50984 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (1 votos, media: 5.00 de 5)
Loading ... Loading ...

Comentarios»

1. Gerardo - Febrero 1, 2007

Y como le hago para poder conocer los microsegundos?

2. lineadecodigo - Febrero 1, 2007

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

3. rafa - Febrero 8, 2007

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

4. MaRiO - Marzo 16, 2007

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

5. manuel - Marzo 17, 2007

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?

6. lola - Marzo 18, 2007

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.

7. FiWitch - Abril 2, 2007

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

8. XXXXXX - Abril 26, 2007

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?

9. pedro - Abril 27, 2007

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

10. wenzpipe - Mayo 11, 2007

Gracias por la ayuda para obtener la hora del sistema

11. Luis Alberto - Mayo 20, 2007

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

12. eva - Junio 21, 2007

good!

13. Jose - Octubre 11, 2007

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?

14. JAFG - Noviembre 7, 2007

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

15. giorgio - Noviembre 16, 2007

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

16. jesus - Noviembre 19, 2007

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

17. Edison Rivadeneira - Noviembre 22, 2007

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.

18. Get system time in Java. Article in spanish. (Obtener la hora del sistema en Java) « JNOJ3681 Blog - Enero 23, 2008

[...] Get system time in Java. Article in spanish. (Obtener la hora del sistema en Java) http://lineadecodigo.com/2007/01/25/obtener-la-hora-en-java/ [...]

19. PICCORO - Enero 28, 2008

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…

20. PICCORO - Enero 28, 2008

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!

21. PICCORO - Enero 28, 2008

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.

22. Nash - Enero 31, 2008

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.

23. juan no bel - Febrero 27, 2008

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

24. diana - Marzo 23, 2008

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

25. flor - Abril 23, 2008

quisiera un calendario agenda en java si me podrein ayudar please

26. Alfredo - Mayo 2, 2008

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??

27. ex - Mayo 6, 2008

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????.

28. Adriana - Mayo 26, 2008

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

29. panxox - Junio 13, 2008

Gracias por el dato de la hora!!

30. Ricardo - Septiembre 16, 2008

gracias el aporte que necesitabamos

31. javier - Octubre 7, 2008

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

32. yulia - Octubre 20, 2008

como hago que un TimerTask consiga la hora de la computadora

33. junior - Noviembre 18, 2008

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…

34. junior - Noviembre 18, 2008

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…

35. junior - Noviembre 18, 2008

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

36. Jesús - Febrero 16, 2009

Excelente!! muchas gracias

37. claudia - Marzo 28, 2009

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

38. Héctor Avila - Abril 7, 2009

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);

}

39. ana - Mayo 6, 2009

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

40. Wendy - Mayo 6, 2009

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

41. tomy - Mayo 19, 2009

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

42. ricardo - Mayo 30, 2009

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

43. pplouis - Junio 5, 2009

Gracias, me sirvio perfecto!

44. Alex - Septiembre 16, 2009

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

45. Erick - Abril 27, 2010

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???

46. lineadecodigo - Mayo 3, 2010

@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

47. ARTURO - Junio 1, 2010

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

48. Marco - Julio 16, 2010

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




Si tienes dudas sobre Java Básico no dudes en visitar el Foro sobre Java Básico.
Imagen CAPTCHA CAPTCHA Audio
Refrescar imagen