Marcio Cunha

Java: capturar horário, idioma e resolução de tela

Aprenda a coletar dados básicos do sistema, como o horário atual, o idioma e o tamanho da tela, usando apenas ferramentas nativas do Java. O código apresentado ajuda a criar aplicações mais inteligentes que se adaptam facilmente ao perfil de cada usuário.

Marcio Cunha•1 min
Também disponível em:EnglishEspañol
Resumo
  • O pacote java.time garante precisão e facilidade na manipulação de datas e horas em projetos modernos.
  • A classe Locale permite identificar rapidamente o idioma e a região configurados no sistema operacional.
  • O uso do Toolkit e da classe Dimension fornece as dimensões exatas da tela para ajustes visuais.
  • Guardar temporariamente na memória as informações de tela evita gargalos de desempenho em programas instalados no computador.
  • A adoção de classes específicas para fuso horário previne falhas de sincronização em sistemas distribuídos.

Introdução

Em aplicações Java, é comum precisar do horário do sistema, do idioma/localização e da resolução de tela para adaptar a experiência do usuário. Abaixo está um resumo prático usando APIs nativas, que são as ferramentas que já vêm prontas dentro da linguagem. Para complementar essa implementação em produção, vale conferir também nossas análises técnicas sobre Redução do Tempo de Resolução de Incidentes com Centralização de Contexto de Logs e Traces via OpenTelemetry Collector e Métricas de Eficiência de Engenharia Baseadas no Tempo de Resolução de Incidentes Críticos.

1. Horário do sistema (Java 8+)

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

2. Idioma e localização

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

3. Resolução de tela

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

Exemplo completo (resumo)

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

Boas práticas

  • Use java.time em projetos novos.
  • Em apps desktop, que são programas executados diretamente no computador, cacheie, ou seja, guarde temporariamente na memória, informações de tela.
  • Para fuso horário, que indica a diferença de horas entre regiões do planeta, prefira ZonedDateTime.

Conclusão

Com poucas linhas você consegue horário, idioma e resolução. Isso ajuda a criar apps mais adaptáveis e profissionais.