Date Format Detective
You have Fri, 12 Jun 2026 10:30:00 +0300 and need the format string that produces it —
in whatever language today’s codebase happens to be. Paste the date string; the detective reverse-engineers
the pattern for six ecosystems at once. Best-effort heuristics: always double-check ambiguous day/month order.
Examples:
Cross-language token cheat sheet
| Component | strftime | PHP | Moment/Day.js | Java | Go | .NET |
|---|---|---|---|---|---|---|
| Year, 4-digit | %Y | Y | YYYY | yyyy | 2006 | yyyy |
| Year, 2-digit | %y | y | YY | yy | 06 | yy |
| Month 6 | %-m† | n | M | M | 1 | M‡ |
| Month 06 | %m | m | MM | MM | 01 | MM |
| Month Jun | %b | M | MMM | MMM | Jan | MMM |
| Month June | %B | F | MMMM | MMMM | January | MMMM |
| Day 2 | %-d† | j | D | d | 2 | d‡ |
| Day 02 | %d | d | DD | dd | 02 | dd |
| Day 2nd | — | jS | Do | — | — | — |
| Weekday Fri | %a | D | ddd | EEE | Mon | ddd |
| Weekday Friday | %A | l | dddd | EEEE | Monday | dddd |
| Hour 9 (24h) | %-H† | G | H | H | — | H‡ |
| Hour 09 (24h) | %H | H | HH | HH | 15 | HH |
| Hour 9 (12h) | %-I† | g | h | h | 3 | h‡ |
| Hour 09 (12h) | %I | h | hh | hh | 03 | hh |
| Minute 05 | %M | i | mm | mm | 04 | mm |
| Second 05 | %S | s | ss | ss | 05 | ss |
| Millisecond 123 | %f (µs)† | v | SSS | SSS | .000 | fff |
| AM / PM | %p | A | A | a | PM | tt |
| Offset +03:00 | %:z† | P | Z | XXX | -07:00 | zzz |
| Offset +0300 | %z | O | ZZ | Z | -0700 | — |
| Zone abbr. EEST | %Z | T | — | z | MST | — |
| Unix seconds | %s | U | X | — | — | — |
† glibc/BSD extension — on Windows strftime use %#d-style flags; Python supports
%-d on Linux/macOS only. ‡ in .NET a single-character format string means a
standard format; use %M or embed it in a longer pattern.
Java tokens are for DateTimeFormatter (SimpleDateFormat differs in zone/era handling).