- 1 1. Introdução
- 2 2. Fundamentos | Manipulação Básica de Datas em JavaScript
- 3 3. Métodos de Formatação de Data [Basic]
- 4 4. Formatação Avançada de Datas [Practical]
- 5 5. Bibliotecas Externas Úteis para Formatação de Datas
- 6 6. Erros Comuns e Soluções [FAQ]
- 7 7. Notas Importantes e Boas Práticas
- 8 8. Conclusão
1. Introdução
Ao trabalhar com JavaScript, você frequentemente encontrará situações que exigem o tratamento de datas. Por exemplo, exibir a data atual em um site ou gerenciar cronogramas de eventos. Embora a formatação de datas em JavaScript possa parecer simples à primeira vista, muitos iniciantes a acham confusa na prática.
Neste artigo, explicaremos claramente a formatação de datas em JavaScript, desde o básico até técnicas mais avançadas. Ao ler este guia, você adquirirá o seguinte conhecimento:
- Operações básicas com datas usando o objeto JavaScript
Date - Métodos de formatação de datas usando APIs nativas como
toLocaleDateString()eIntl.DateTimeFormat - Uma introdução a bibliotecas úteis que ajudam a simplificar a formatação de datas
Este artigo foi criado para ajudar iniciantes a começar pelos fundamentos, ao mesmo tempo em que oferece aos usuários intermediários técnicas práticas e dicas de uso de bibliotecas. Dessa forma, você poderá adquirir habilidades úteis no desenvolvimento do mundo real.
Na próxima seção, começaremos revisando os fundamentos do objeto JavaScript Date. Entender esses conceitos básicos permitirá que você obtenha uma visão mais profunda de como a formatação de datas funciona.
2. Fundamentos | Manipulação Básica de Datas em JavaScript
JavaScript fornece o objeto Date para lidar com datas e horários. Ao usar esse objeto, você pode obter a data e hora atuais, especificar uma data específica e realizar operações flexíveis, como adicionar ou subtrair tempo.
2.1 Criando Objetos Date
1. Obtendo a Data e Hora Atuais
const today = new Date();
console.log(today); // Example output: Sun Dec 29 2024 14:30:00 GMT+0900 (JST)
2. Especificando uma Data Específica
const specificDate = new Date(2024, 11, 29); // Year, month (0-based), day
console.log(specificDate); // Example output: Sun Dec 29 2024 00:00:00 GMT+0900 (JST)
3. Criando uma Data a partir de um Timestamp
const timestampDate = new Date(1703827200000); // Timestamp
console.log(timestampDate); // Example output: Sun Dec 29 2024 00:00:00 GMT+0900 (JST)
2.2 Recuperando Componentes da Data
1. Obtendo Ano, Mês e Dia
const today = new Date();
console.log(today.getFullYear()); // Get year: 2024
console.log(today.getMonth() + 1); // Get month (0-based): 12
console.log(today.getDate()); // Get day: 29
2.3 Editando e Manipulando Datas
1. Adicionando Dias a uma Data
today.setDate(today.getDate() + 1);
console.log(today); // Displays the next day's date
2. Alterando para uma Data Específica
today.setFullYear(2025); // Change year to 2025
today.setMonth(0); // Change month to January
today.setDate(1); // Change day to the 1st
console.log(today); // Example output: Wed Jan 1 2025 14:30:00 GMT+0900 (JST)
2.4 Fusos Horários e UTC
1. Recuperando Valores de Data em UTC
console.log(today.getUTCFullYear()); // Get UTC year
console.log(today.getUTCMonth() + 1); // Get UTC month
console.log(today.getUTCDate()); // Get UTC day
2. Obtendo uma String de Data no formato ISO 8601
console.log(today.toISOString()); // Get ISO 8601 formatted string
Resumo
Nesta seção, explicamos os fundamentos da manipulação de datas usando o objeto JavaScript Date.
3. Métodos de Formatação de Data [Basic]
Ao trabalhar com datas em JavaScript, personalizar o formato de exibição é extremamente importante. Nesta seção, explicaremos os métodos básicos de formatação de datas.
3.1 Concatenção Simples de Strings
1. Exibindo Datas no Formato AAAA-MM-DD
const today = new Date();
const year = today.getFullYear();
const month = ('0' + (today.getMonth() + 1)).slice(-2);
const day = ('0' + today.getDate()).slice(-2);
const formattedDate = `${year}-${month}-${day}`;
console.log(formattedDate); // Example output: 2024-12-29
3.2 Formatação com toLocaleDateString()
const date = new Date();
console.log(date.toLocaleDateString('ja-JP')); // Example output: 2024/12/29
3.3 Formato ISO 8601 e toISOString()
console.log(date.toISOString());
// Example output: 2024-12-29T05:30:00.000Z
Resumo
Nesta seção, cobrimos os conceitos básicos de formatação de datas em JavaScript.
4. Formatação Avançada de Datas [Practical]
Nesta seção, apresentaremos técnicas de formatação de datas mais avançadas e práticas.
4.1 Formatação Personalizada com Intl.DateTimeFormat
const date = new Date();
const formatter = new Intl.DateTimeFormat('ja-JP', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
});
console.log(formatter.format(date)); // Example output: 2024/12/29
4.2 Manipulação de Fusos Horários
const utcDate = new Date(Date.UTC(2024, 11, 29, 12, 0, 0));
const formatter = new Intl.DateTimeFormat('en-US', {
timeZone: 'America/New_York',
timeZoneName: 'short'
});
console.log(formatter.format(utcDate));
// Example output: 12/29/2024, EST
Resumo
Nesta seção, introduzimos técnicas avançadas de formatação de datas adequadas para aplicações do mundo real.
5. Bibliotecas Externas Úteis para Formatação de Datas
JavaScript oferece muitos recursos nativos para manipulação de datas, mas o uso de bibliotecas externas pode melhorar significativamente a eficiência e a legibilidade.
5.1 Usando Moment.js (Descontinuado)
const moment = require('moment');
const formattedDate = moment().format('YYYY-MM-DD HH:mm:ss');
console.log(formattedDate); // Example output: 2024-12-29 14:30:00
5.2 Por que date-fns é Recomendado e Exemplo de Uso
import { format } from 'date-fns';
const today = new Date();
const formattedDate = format(today, 'yyyy-MM-dd HH:mm:ss');
console.log(formattedDate); // Example output: 2024-12-29 14:30:00
Resumo
Nesta seção, apresentamos os benefícios das bibliotecas externas e como usá‑las efetivamente.

6. Erros Comuns e Soluções [FAQ]
Ao trabalhar com datas em JavaScript, tanto iniciantes quanto desenvolvedores intermediários frequentemente encontram erros e problemas semelhantes. Nesta seção, explicamos problemas comuns, suas causas e soluções práticas em formato de FAQ.
Q1. Por que o mês desloca em um?
Exemplo de Problema
const date = new Date(2024, 12, 29);
console.log(date); // Output: 2025-01-29
Causa
Em JavaScript, os índices de mês começam em 0, não em 1.
Solução
Ao especificar um mês, subtraia 1 do valor do mês desejado.
const date = new Date(2024, 11, 29); // Correct way to specify December
console.log(date); // Output: 2024-12-29
Q2. Por que os números não são preenchidos com zero?
Exemplo de Problema
const today = new Date();
const month = today.getMonth() + 1; // 12
const day = today.getDate(); // 9
console.log(`${today.getFullYear()}-${month}-${day}`);
// Output: 2024-12-9
Solução
Use slice() ou padStart() para aplicar preenchimento com zero.
const month = ('0' + (today.getMonth() + 1)).slice(-2);
const day = ('0' + today.getDate()).slice(-2);
console.log(`${today.getFullYear()}-${month}-${day}`);
// Output: 2024-12-09
Resumo
Nesta seção, explicamos erros comuns e considerações importantes relacionadas ao manuseio de datas em JavaScript, usando um formato de FAQ.
7. Notas Importantes e Boas Práticas
O manuseio de datas em JavaScript é poderoso, mas mal‑entendidos de suas especificações ou uso inadequado podem facilmente gerar erros e bugs. Nesta seção, apresentamos notas importantes e boas práticas para uma manipulação de datas segura e eficiente.
7.1 Índices de Mês e Preenchimento com Zero
const date = new Date(2024, 11, 29); // December 29
console.log(date.getMonth() + 1); // Output: 12
7.2 Gerenciamento de Fusos Horários
Usando UTC
const utcDate = new Date(Date.UTC(2024, 11, 29, 12, 0, 0));
console.log(utcDate.toISOString());
// Output: 2024-12-29T12:00:00.000Z
7.3 Melhorando a Legibilidade e a Manutenibilidade
Criando uma Função de Formatação de Data
function formatDate(date) {
const year = date.getFullYear();
const month = ('0' + (date.getMonth() + 1)).slice(-2);
const day = ('0' + date.getDate()).slice(-2);
return `${year}-${month}-${day}`;
}
console.log(formatDate(new Date()));
// Output: 2024-12-29
Resumo
Nesta seção, explicamos notas importantes e boas práticas para lidar com datas em JavaScript.
8. Conclusão
O tratamento de datas em JavaScript é um recurso frequentemente necessário no desenvolvimento web. Neste artigo, explicamos tudo passo a passo, desde conceitos básicos até técnicas avançadas, permitindo que os leitores adquiram conhecimento que pode ser aplicado em projetos reais.
Revisão dos Principais Aprendizados
- Operações Básicas com Data
- Explicadas as operações fundamentais e considerações importantes ao usar o objeto
Date.
- Fundamentos e Técnicas Avançadas de Formatação
- Introduzida a formatação personalizada, suporte à internacionalização e manipulação de fusos horários.
- Uso de Bibliotecas Externas
- Comparadas as funcionalidades e o uso de bibliotecas como
date-fnseDay.js.
- Erros Comuns e Soluções
- Organizados casos típicos de erro e suas soluções em formato de FAQ.
Próximos Passos
- Experimente o código de exemplo em seu próprio ambiente.
- Introduza bibliotecas e faça comparações.
- Desafie-se com aplicações práticas em sistemas reais.
Considerações Finais
O tratamento de datas em JavaScript pode se tornar complexo ao considerar especificações detalhadas e internacionalização. Use este artigo como referência para refinar ainda mais suas habilidades práticas.



