Formatação de datas
Formate datas com DateTimeFormatter, imutável e thread-safe.
Comparação de Código
✕ Pre-Java 8
// Not thread-safe!
SimpleDateFormat sdf =
new SimpleDateFormat("yyyy-MM-dd");
String formatted = sdf.format(date);
// Must synchronize for concurrent use
✓ Java 8+
DateTimeFormatter fmt =
DateTimeFormatter.ofPattern(
"uuuu-MM-dd");
String formatted =
LocalDate.now().format(fmt);
// Thread-safe, immutable
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Thread-safe
Compartilhe formatadores entre threads sem sincronização.
Formatos prontos
ISO_LOCAL_DATE, ISO_INSTANT, etc. para formatos padrão.
Imutável
Armazene como constantes static final com segurança.
Abordagem Antiga
SimpleDateFormat
Abordagem Moderna
DateTimeFormatter
Desde o JDK
8
Dificuldade
Iniciante
Suporte JDK
Formatação de datas
Disponível
Amplamente disponível desde o JDK 8 (março de 2014)
Como funciona
DateTimeFormatter é imutável e thread-safe, ao contrário de SimpleDateFormat. Pode ser armazenado como constante e compartilhado livremente. Formatadores predefinidos como ISO_LOCAL_DATE estão disponíveis para formatos comuns.
Documentação Relacionada