Preview how dates, numbers, currencies, lists and relative times are formatted in any locale with the browser Intl API.
Sample values
Columns
Preview for 10 locales
Locale
Date (medium)
Time
Number
Currency
Percent
Relative time
en-US
Sep 3, 2026
2:30 PM
1,234,567.891
$1,234,567.89
25.6%
3 days ago
en-GB
3 Sept 2026
14:30
1,234,567.891
US$1,234,567.89
25.6%
3 days ago
de-DE
03.09.2026
14:30
1.234.567,891
1.234.567,89 $
25,6 %
vor 3 Tagen
fr-FR
3 sept. 2026
14:30
1 234 567,891
1 234 567,89 $US
25,6 %
il y a 3 jours
pl-PL
3 wrz 2026
14:30
1 234 567,891
1 234 567,89 USD
25,6%
3 dni temu
ja-JP
2026/09/03
14:30
1,234,567.891
$1,234,567.89
25.6%
3 日前
ar-EG
٠٣/٠٩/٢٠٢٦
٢:٣٠ م
١٬٢٣٤٬٥٦٧٫٨٩١
١٬٢٣٤٬٥٦٧٫٨٩ US$
٢٥٫٦٪
قبل ٣ أيام
hi-IN
3 सित॰ 2026
2:30 pm
12,34,567.891
$12,34,567.89
25.6%
3 दिन पहले
pt-BR
3 de set. de 2026
14:30
1.234.567,891
US$ 1.234.567,89
25,6%
há 3 dias
zh-CN
2026年9月3日
14:30
1,234,567.891
US$1,234,567.89
25.6%
3天前
Runs in your browser. Files are not uploaded unless the tool says otherwise.
Translating text is only half of localization
A date like 03/09/2026 is 9 March in the United States and 3 September almost everywhere else. Germans write 1.234.567,89 where Americans write 1,234,567.89, and Swiss French uses an apostrophe as the grouping character. Arabic and Hindi locales can use their own digits. Currency symbols move from before to after the number, and the first day of the week is Monday in Europe, Sunday in the US and Saturday in much of the Middle East. Hardcoding any of these makes an app look foreign even when every string is translated.
What this tool shows
Dates and times in the four standard dateStyle lengths and the short time style.
Numbers, currency, percent and units through Intl.NumberFormat, including the numbering system the locale resolves to.
Lists through Intl.ListFormat, which knows that Spanish switches "y" to "e" before words starting with "i".
Relative time through Intl.RelativeTimeFormat, so "3 days ago" becomes "vor 3 Tagen" without a translation key.
First day of the week where the browser exposes week info.
Everything comes from your browser's ICU data, so the output is what a JavaScript app would render for that user. Results can differ slightly between Chrome, Firefox and Safari, which is a good reminder not to snapshot-test formatted output across engines.
Practical rules
Never format dates, numbers or currencies by string concatenation. Pass raw values to the formatter and let the locale decide.
Keep the locale for formatting separate from the UI language when users ask for it: a Swiss user may want German text with de-CH numbers.
In ICU messages use {amount, number, ::currency/EUR} and {when, date, medium} so translators can reorder words without touching formatting.
Store timestamps in UTC and format them in the user's time zone at render time.
SimpleLocalize keeps ICU formatting arguments intact during auto-translation and validates them with QA checks. Try the ICU Message Syntax Tester to preview a full message with number and date arguments.