Marcio Cunha

Java: obtener hora, idioma y resolución de pantalla

Aprender a consultar datos del entorno como la hora, el idioma y la pantalla permite que tus programas en Java se adapten con precisión a cada usuario. Este artículo ofrece fragmentos de código listos para integrar y resolver estas necesidades cotidianas sin rodeos.

Marcio Cunha7 min
También disponible en:EnglishPortuguês
Resumen
  • La clase LocalDateTime de Java 8 facilita la consulta de la hora actual junto con un formato personalizado para mostrarla.
  • El objeto Locale permite detectar de forma automática el idioma y la región configurados en el dispositivo del usuario.
  • La clase Toolkit consulta directamente las dimensiones físicas del monitor para obtener la resolución exacta de pantalla.
  • Centralizar todas estas consultas en un solo ejemplo demuestra que se requieren muy pocas líneas de código para lograrlo.
  • Las buenas prácticas recomiendan usar herramientas modernas de tiempo y guardar en memoria los datos del monitor para optimizar el rendimiento.

Introducción

En aplicaciones hechas en Java es muy común necesitar la hora, el idioma o localización y el tamaño de la pantalla para adaptar la interfaz visual a cada persona. Aquí tienes lo esencial para lograrlo usando herramientas estándar.

1. Hora del sistema (Java 8+)

Para consultar el momento exacto, usamos LocalDateTime, una clase que representa la fecha y la hora actuales sin importar en qué parte del mundo estés.

import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;LocalDateTime ahora = LocalDateTime.now();DateTimeFormatter fmt = DateTimeFormatter.ofPattern('dd/MM/yyyy HH:mm:ss');System.out.println(ahora.format(fmt));

2. Idioma y localización

Para saber cómo habla o en qué país vive la persona que usa el programa, recurrimos a Locale, un componente que almacena las preferencias regionales del sistema operativo.

import java.util.Locale;Locale locale = Locale.getDefault();System.out.println(locale.getLanguage());System.out.println(locale.getCountry());System.out.println(locale.getDisplayName());

3. Resolución de pantalla

Para conocer el espacio visual disponible, usamos Toolkit, una caja de herramientas gráfica tradicional que interactúa con el sistema operativo para medir el monitor.

import java.awt.Toolkit;import java.awt.Dimension;Toolkit toolkit = Toolkit.getDefaultToolkit();Dimension size = toolkit.getScreenSize();System.out.println(size.width + 'x' + size.height);

Ejemplo completo

Este bloque junta todas las piezas anteriores en un solo script, ideal para verificar el funcionamiento simultáneo de hora, idioma y resolución.

import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.util.Locale;import java.awt.Toolkit;import java.awt.Dimension;LocalDateTime ahora = LocalDateTime.now();Locale locale = Locale.getDefault();Dimension size = Toolkit.getDefaultToolkit().getScreenSize();System.out.println(ahora.format(DateTimeFormatter.ofPattern('dd/MM/yyyy HH:mm:ss')));System.out.println(locale.getDisplayName());System.out.println(size.width + 'x' + size.height);

Buenas prácticas

Para escribir código más limpio y eficiente, ten en cuenta estas recomendaciones técnicas:

  • Usa java.time en proyectos nuevos para evitar errores con fechas antiguas.
  • En apps de escritorio, guarda en memoria caché los datos de pantalla para no consultar al sistema constantemente.
  • Para zonas horarias específicas, usa ZonedDateTime si manejas usuarios distribuidos por el mundo.

Conclusión

Con pocas líneas de código obtienes hora, idioma y resolución, creando aplicaciones mucho más adaptables a la realidad de quien las utiliza.