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

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.