DocumentosImagensMídiaFerramentas PDF

Conversor de Formato de Data Online

Converta entre sintaxes de formato de data: strftime, Moment.js, ICU, Go, PHP, Java.

YYYY-MM-DD HH:mm:ss
Reference table
ElementstrftimeMomentICUGo
4-digit year%YYYYYyyyy2006
2-digit year%yYYyy06
Month (01-12)%mMMMM01
Full month name%BMMMMMMMMJanuary
Abbreviated month name%bMMMMMMJan
Day of month (01-31)%dDDdd02
Day of month, no leading zero%eDd2
Hour 24h (00-23)%HHHHH15
Hour 12h (01-12)%Ihhhh03
Minute (00-59)%Mmmmm04
Second (00-59)%Sssss05
AM/PM%pAaPM
Timezone abbreviation%ZzzzzMST
Timezone offset%zZZZ-0700
Full weekday name%AddddEEEEMonday
Abbreviated weekday name%adddEEEMon
Day of year (001-366)%jDDDDD__2
Processed in your browser

Conversor de formatos de data para desenvolvedores

Todas as linguagens

Suporta strftime, Moment.js, Day.js, ICU, Go, PHP, Java, .NET e Ruby.

100% privado

A conversão acontece no seu navegador. Nenhum dado é enviado a nenhum servidor.

Prévia real

Veja como a data seria renderizada com seu formato em cada linguagem.

Instantâneo

Conversão em tempo real enquanto você digita. Sem cadastro, sem espera.

Três passos, sem complicação

1

Insira o token de formato

Digite um formato de data como %Y-%m-%d (strftime) ou YYYY-MM-DD (Moment.js). A ferramenta detecta o dialeto automaticamente.

2

Conversão instantânea

Obtenha o formato equivalente em todos os dialetos suportados: strftime, Moment.js, ICU, Go, PHP, Java e .NET.

3

Prévia com data real

Veja como a data atual seria exibida com esse formato em cada linguagem.

Ficou com dúvidas?

strftime (string format time) é uma função da biblioteca padrão C definida no padrão C89/ANSI C. Ela formata uma estrutura tm (tempo) como string de texto usando tokens como %Y (ano com 4 dígitos), %m (mês), %d (dia), %H (hora em 24h), %M (minutos), %S (segundos). É a origem de praticamente todos os sistemas de formatação de datas: Python, Ruby, PHP (date() usa tokens diferentes, mas strftime() usa os mesmos), bash e muitos outros.

O Moment.js popularizou uma notação diferente: YYYY (ano com 4 dígitos), MM (mês), DD (dia), HH (hora em 24h), mm (minutos), ss (segundos). Diferença crucial: maiúsculas e minúsculas importam (MM é mês, mm é minutos). Essa notação foi adotada por Day.js, date-fns, Luxon e a maioria das bibliotecas JavaScript modernas. A proposta Temporal do JavaScript (TC39) usa a notação ICU.

ICU (International Components for Unicode) define o padrão CLDR para formatos de data. Usa tokens como yyyy (ano), MM (mês), dd (dia), HH (hora). É o sistema usado no Java (java.time.format.DateTimeFormatter), Swift (DateFormatter), Kotlin, Android e na proposta Temporal do JavaScript. A vantagem do ICU é que ele também trata da localização: o padrão d MMMM yyyy gera April 7, 2026 em inglês e 7 de abril de 2026 em português.

O Go (Golang) usa uma data de referência específica como modelo: 2 de janeiro de 2006 às 15:04:05 numa segunda-feira (o que corresponde a 01/02 03:04:05PM 06 -0700 MST, uma sequência fácil de memorizar). Em vez de tokens abstratos, você descreve o formato mostrando como essa data específica ficaria: 2006-01-02 para ano-mês-dia, 15:04:05 para hora completa. Essa abordagem é única e mais intuitiva segundo seus criadores, embora confusa à primeira vista.

Data ISO 8601: strftime: %Y-%m-%d, Moment.js: YYYY-MM-DD, Go: 2006-01-02, Java: yyyy-MM-dd. Data e hora completas: strftime: %Y-%m-%dT%H:%M:%S, Moment.js: YYYY-MM-DDTHH:mm:ss, Go: 2006-01-02T15:04:05, Java: yyyy-MM-dd com T e HH:mm:ss. Formato europeu: strftime: %d/%m/%Y, Moment.js: DD/MM/YYYY, Go: 02/01/2006, Java: dd/MM/yyyy.

História da formatação de datas na programação, ISO 8601, formatação com localização e tratamento de fusos horários

A padronização dos formatos de data na computação foi historicamente problemática. A função strftime foi introduzida na biblioteca padrão C (ANSI C, 1989), mas suas raízes remontam aos sistemas Unix da AT&T dos anos 1970. Antes da padronização, cada sistema e linguagem usava sua própria notação, causando sérias incompatibilidades. O padrão ISO 8601 (primeira edição 1988, revisado em 2004 e 2019) estabeleceu YYYY-MM-DD como formato universal para troca de dados, adotado por XML, JSON, HTTP (para datas em cookies e cabeçalhos) e pela maioria das APIs modernas.

A localização de datas adiciona outra camada de complexidade. A ordem dia/mês/ano varia por país: DD/MM/YYYY na Europa e América Latina, MM/DD/YYYY nos Estados Unidos (causando confusão frequente: 01/02/2026 é 1 de fevereiro na Europa, mas 2 de janeiro nos EUA). Os sistemas ICU/CLDR tratam essas diferenças automaticamente: a mesma função de formato produz April 7, 2026 em inglês, 7 de abril de 2026 em português, 7. April 2026 em alemão ou 2026年4月7日 em japonês, sem que o desenvolvedor precise gerenciar as diferenças manualmente.

Os fusos horários são a parte mais complexa do tratamento de datas em software. O IANA Time Zone Database (também chamado de Olson Database ou tzdata) mantém o registro histórico e atualizado de todos os fusos horários do mundo, incluindo as mudanças históricas de horário de verão (DST). Muitos bugs famosos em software estão relacionados a datas: o bug Y2K (ano 2000), o bug do Ano 2038 em sistemas Unix de 32 bits (onde o timestamp Unix vai transbordar em 19 de janeiro de 2038) e erros de DST que afetam calendários e sistemas de reserva duas vezes por ano.