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