Conversor de Formato de Data Online
Converta entre sintaxes de formato de data: strftime, Moment.js, ICU, Go, PHP, Java.
Reference table
| Element | strftime | Moment | ICU | Go |
|---|---|---|---|---|
| 4-digit year | %Y | YYYY | yyyy | 2006 |
| 2-digit year | %y | YY | yy | 06 |
| Month (01-12) | %m | MM | MM | 01 |
| Full month name | %B | MMMM | MMMM | January |
| Abbreviated month name | %b | MMM | MMM | Jan |
| Day of month (01-31) | %d | DD | dd | 02 |
| Day of month, no leading zero | %e | D | d | 2 |
| Hour 24h (00-23) | %H | HH | HH | 15 |
| Hour 12h (01-12) | %I | hh | hh | 03 |
| Minute (00-59) | %M | mm | mm | 04 |
| Second (00-59) | %S | ss | ss | 05 |
| AM/PM | %p | A | a | PM |
| Timezone abbreviation | %Z | z | zzz | MST |
| Timezone offset | %z | ZZ | Z | -0700 |
| Full weekday name | %A | dddd | EEEE | Monday |
| Abbreviated weekday name | %a | ddd | EEE | Mon |
| Day of year (001-366) | %j | DDDD | D | __2 |
Para que serve
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.
Como funciona
Três passos, sem complicação
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.
Conversão instantânea
Obtenha o formato equivalente em todos os dialetos suportados: strftime, Moment.js, ICU, Go, PHP, Java e .NET.
Prévia com data real
Veja como a data atual seria exibida com esse formato em cada linguagem.
Perguntas frequentes
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.