Paste a date in almost any format (ISO 8601, RFC 2822, Unix seconds or milliseconds, 10/20/2026, 20 Oct 2026 2:05 pm…) and see it in every standard format at once. Build your own pattern in strftime, moment.js/Day.js or Java syntax and translate it between the three.
Last updated:
Try:
Standard formats
Format builder
Token reference (click a token to insert it)
Token
Meaning
Example
Advertisement
Advertisement
How to use the Date Format Converter
Enter a date in any common format, or click Now. A Unix timestamp works too.
Set the time zones: which zone a date without an offset is in, and which zone to show results in.
Copy a standard format such as ISO 8601 or RFC 2822 from the results table.
Build a custom format: pick strftime, moment.js or Java, choose a preset or type a pattern, and click tokens in the reference to insert them.
Translate the pattern: the equivalent strftime, moment and Java patterns are shown below the result.
Same format, three syntaxes
The most common patterns side by side. The format builder above translates any pattern automatically.
Output example
strftime (Python, PHP, C)
moment.js / Day.js
Java DateTimeFormatter
2026-10-20
%Y-%m-%d
YYYY-MM-DD
yyyy-MM-dd
2026-10-20 14:05:09
%Y-%m-%d %H:%M:%S
YYYY-MM-DD HH:mm:ss
yyyy-MM-dd HH:mm:ss
2026-10-20T14:05:09.123+02:00
%Y-%m-%dT%H:%M:%S.%f%:z *
YYYY-MM-DD[T]HH:mm:ss.SSSZ
yyyy-MM-dd'T'HH:mm:ss.SSSXXX
10/20/2026
%m/%d/%Y
MM/DD/YYYY
MM/dd/yyyy
20.10.2026
%d.%m.%Y
DD.MM.YYYY
dd.MM.yyyy
Tuesday, October 20, 2026
%A, %B %-d, %Y
dddd, MMMM D, YYYY
EEEE, MMMM d, yyyy
Oct 20, 2026 2:05 PM
%b %-d, %Y %-I:%M %p
MMM D, YYYY h:mm A
MMM d, yyyy h:mm a
Tue, 20 Oct 2026 14:05:09 +0200
%a, %d %b %Y %H:%M:%S %z
ddd, DD MMM YYYY HH:mm:ss ZZ
EEE, dd MMM yyyy HH:mm:ss xx
2026-W43
%G-W%V
GGGG-[W]WW
YYYY-'W'ww
* %f prints microseconds (6 digits) in Python; trim to milliseconds yourself, or use isoformat(timespec="milliseconds").
Classic date formatting bugs
Week year instead of calendar year: Java YYYY and moment GGGG give the ISO week-based year. On December 29–31 and January 1–3 it can differ from the calendar year by one.
Day of year instead of day of month: Java DD and moment DDDD give 293 for October 20.
Minutes instead of months: mm (moment, Java) and %M (strftime) are minutes; months are MM and %m.
Weekday instead of day: moment d/dd is the weekday; the day of the month is D/DD.
12-hour clock without AM/PM: hh or %I alone makes 1 am and 1 pm identical. Add A, a or %p.
Missing time zone: a timestamp like 2026-10-20 14:05 means a different instant in every zone. Store and exchange UTC or include the offset (ISO 8601 / RFC 3339).
Unix timestamps by digit count
Digits (today)
Unit
Typical source
10
Seconds
Unix date +%s, PHP time(), Python int(time.time()), JWT exp
ISO 8601 writes dates from largest to smallest unit: YYYY-MM-DD, optionally followed by T, the time hh:mm:ss, fractional seconds and a time zone designator such as Z (UTC) or +02:00, for example 2026-10-20T14:05:09+02:00. It sorts correctly as text and is the safest format for APIs and files.
What is the difference between ISO 8601 and RFC 3339?
RFC 3339 is a stricter profile of ISO 8601 for internet protocols. It always requires a full date, time and offset, and allows a space instead of T. ISO 8601 also allows week dates, ordinal dates, reduced precision and basic format without separators.
What is the RFC 2822 date format?
It is the date format used in email headers, for example Tue, 20 Oct 2026 14:05:09 +0200: optional weekday, day, English month abbreviation, year, 24-hour time and a numeric offset. HTTP headers use a variant fixed to GMT: Tue, 20 Oct 2026 12:05:09 GMT.
Why does my Java date show the wrong year at the end of December?
In Java DateTimeFormatter and SimpleDateFormat, YYYY is the week-based year, which can differ from the calendar year in the last days of December and the first days of January. Use yyyy (or uuuu) for the calendar year. Likewise DD is the day of the year; use dd for the day of the month.
How do I tell if a Unix timestamp is in seconds or milliseconds?
Current timestamps in seconds have 10 digits (for example 1792500000), in milliseconds 13 digits, in microseconds 16 and in nanoseconds 19. The converter detects the unit from the number of digits automatically.
Is 03/04/2026 March 4 or April 3?
It depends on the locale: the US reads month/day (March 4), most of Europe and many other countries read day/month (April 3). Choose the order in the settings. If one number is above 12 the order is detected automatically, and ISO 8601 (2026-03-04) avoids the ambiguity entirely.
Is my data sent anywhere?
No. Parsing, time zone conversion and formatting use your browser's built-in Intl APIs and run entirely on your device.
Are all the tools on FreeToolCabin tested for quality and accuracy?
Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.