Localized/Engineering

Date, Time, Currency, and Number Formats in Japan

Reference for Japanese date, time, currency, address, and number formatting in mobile apps — with iOS and Android implementation notes.

Locale formatting is one of the easier parts of localization to get right and one of the easiest to forget. This article is a working reference for the Japan-specific formatting your app needs.

For the broader localization process, see the iOS and Android Japan localization step-by-step guide.

Dates

Acceptable formats in Japanese UI

Format When
2026年5月10日 Formal, prose, headers
2026/5/10 Most common in app UI
2026/05/10 Tabular data, technical contexts
2026.05.10 Less common, occasionally in date stamps
5月10日 When year is implied

What not to use

  • 5/10/2026 — American format, parses ambiguously and feels foreign.
  • 10/5/2026 — UK format, equally foreign in JP.
  • May 10, 2026 — English month names, never used in JP UI.
  • 2026-05-10 — ISO format is OK in technical contexts but less common in user-facing UI.

Day of the week

Japanese days of the week:

  • 日曜日 (にちようび, Sun)
  • 月曜日 (げつようび, Mon)
  • 火曜日 (かようび, Tue)
  • 水曜日 (すいようび, Wed)
  • 木曜日 (もくようび, Thu)
  • 金曜日 (きんようび, Fri)
  • 土曜日 (どようび, Sat)

In compact UI, the single-character abbreviation is standard:

日 月 火 水 木 金 土

These appear in calendars, schedule grids, and date pickers.

iOS implementation

let formatter = DateFormatter()
formatter.locale = Locale(identifier: "ja_JP")
formatter.dateStyle = .long  // "2026年5月10日"
// or
formatter.dateFormat = "yyyy/MM/dd"  // "2026/05/10"

Don't hardcode date format strings. Use DateFormatter with locale-aware styles, then override with custom dateFormat only when you need a specific UI shape.

Android implementation

val formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd")
    .withLocale(Locale.JAPAN)
val date = LocalDate.now().format(formatter)

Or use DateUtils for relative formats ("2分前," "今日," "昨日").

Relative time

Japanese relative time is widely used in app UI:

  • たった今 (just now)
  • 〇分前 (n minutes ago)
  • 〇時間前 (n hours ago)
  • 昨日 (yesterday)
  • 〇日前 (n days ago)
  • 〇週間前 (n weeks ago)
  • 〇か月前 (n months ago)
  • 〇年前 (n years ago)

The 「か月」 (months) is sometimes written 「ヶ月」 — both are correct; pick one and stay consistent.

Time

Standard formats

Format When
14:30 Most common, 24-hour
午後2:30 Older style, with AM/PM marker
14時30分 Formal prose

24-hour time is dominant in JP app UI. Don't use AM/PM unless the design calls for it specifically.

Edge case: midnight and noon

  • 午前0:00 / 0:00 — midnight start of day.
  • 24:00 — sometimes used for end-of-day deadlines, e.g., "5月10日24:00まで" (until midnight on May 10). This is a JP convention; 24:00 isn't an error.

Currency

Yen format

❌ JPY 1,000.00 ❌ ¥1000 ❌ ¥1,000.00 ✅ ¥1,000 ✅ 1,000円

Yen has no decimal places. Adding .00 is wrong (and looks like a foreign developer's tooling default).

The 「¥」 prefix and 「円」 suffix are interchangeable. Pick one and stay consistent within the app.

Comma separators every 3 digits: 1,000, 10,000, 100,000, 1,000,000.

iOS implementation

let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "ja_JP")
formatter.numberStyle = .currency
formatter.maximumFractionDigits = 0
let priceString = formatter.string(from: 1000) // "¥1,000"

The maximumFractionDigits = 0 is important — without it, you get ¥1,000.00.

Android implementation

val formatter = NumberFormat.getCurrencyInstance(Locale.JAPAN)
formatter.maximumFractionDigits = 0
val priceString = formatter.format(1000) // "¥1,000"

Large yen amounts

Japanese has units for large numbers that English doesn't:

  • 万 (man) = 10,000
  • 億 (oku) = 100,000,000
  • 兆 (chō) = 1,000,000,000,000

Conventions in JP UI:

  • Under 10,000: write out (e.g., 5,000円).
  • 10,000–9,999,999: write as 〇万 if rounded (e.g., 1万円 for 10,000) or as full digits.
  • 10,000,000+: use 〇万 or 〇億 freely (e.g., 1億円).

For financial apps, use full digits. For marketing copy, the abbreviated forms are warmer ("100万人が使う" reads better than "1,000,000人が使う").

Numbers

Comma separators

Every 3 digits, same as English: 1,000 / 10,000 / 100,000.

Decimal point

Period ., same as English: 3.14, not 3,14.

Grouping for very large numbers

Japanese conventionally groups by 4 digits (万, 億, 兆 boundaries) rather than by 3 (thousands, millions). But in app UI, grouping by 3 with commas is universal.

Phone numbers

Japanese phone number formats:

  • Mobile: 090-1234-5678 / 080-1234-5678 / 070-1234-5678
  • Landline: 03-1234-5678 (Tokyo), 06-1234-5678 (Osaka), variable elsewhere
  • Toll-free: 0120-123-456

Use hyphens between segments. Don't display as 09012345678 without hyphens (less readable).

Postal codes

Japanese postal code: 〒100-0001 (3 digits, hyphen, 4 digits, with optional 〒 prefix).

The 〒 mark is conventional but not strictly required in app UI. If you display it, use the full-width 〒.

Addresses

Japanese address order is reverse of Western (largest to smallest):

〒100-0001
東京都千代田区千代田1-1-1
皇居マンション 101号室

Components, in order:

  1. 郵便番号 (postal code)
  2. 都道府県 (prefecture) — 東京都, 大阪府, 京都府, or 〇〇県
  3. 市区町村 (city/ward/town)
  4. 丁目・番地 (block/lot, hyphenated)
  5. 建物名 (building name) and 部屋番号 (room number)

Forms should:

  • Order fields top-to-bottom matching this order.
  • Auto-fill 都道府県 and 市区町村 from the 郵便番号 (a 1990s convention that JP users still expect — see Japanese mobile UI conventions).
  • Provide separate fields for 丁目, 番地, 建物名 if precision matters.

Don't combine address into one field

US apps that present address as a single text field feel sloppy in JP. Use the structured Japanese form layout.

Names

Name fields in Japanese forms typically have:

  • 姓 (last name)
  • 名 (first name)
  • 姓カナ (last name reading in katakana)
  • 名カナ (first name reading in katakana)

The katakana readings are used for sorting (Japanese alphabetical order is phonetic, so sorting by kanji doesn't work) and for printing on mailing labels. Skipping these fields makes the form feel sloppy to JP users.

Display convention

In display, JP apps typically show 姓 first, then 名, sometimes separated by a space:

❌ Jane Doe-style: ジェーン ドウ ✅ JP order: ドウ ジェーン (for foreign names) ✅ JP order: 山田 太郎 (for Japanese names)

For foreign personal names in JP UI, write in katakana with surname first. (Brand names stay in romaji — see Japanese script choice.)

Era Names and Year Counting

Japanese has a parallel year-counting system based on imperial era names:

  • 令和 (Reiwa, 2019–present) — 令和8年 = 2026
  • 平成 (Heisei, 1989–2019)
  • 昭和 (Showa, 1926–1989)

In most consumer app UI, use the Western (西暦) year. Era names appear in:

  • Government and tax-related forms.
  • Older-demographic apps.
  • Formal date formatting in healthcare or finance.

If you support era format, use OS-provided locale-aware formatters. Don't roll your own — era boundaries are sometimes added (a new emperor changes the era).

iOS

let formatter = DateFormatter()
formatter.locale = Locale(identifier: "ja_JP")
formatter.calendar = Calendar(identifier: .japanese)
formatter.dateFormat = "Gy年M月d日"  // "令和8年5月10日"

Android

val era = LocalDate.now()
    .format(DateTimeFormatter.ofPattern("Gy年M月d日")
    .withChronology(JapaneseChronology.INSTANCE)
    .withLocale(Locale.JAPAN))

Calendar Conventions

Week start

Japanese calendars start on Sunday, like the US. (Unlike Europe, which starts on Monday.) Apps targeting Japan should display Sunday-start calendars by default. Some scheduling apps offer a setting; default to Sunday for JP locale.

Public holidays

Japan has roughly 16 public holidays. If your app shows a calendar, marking JP public holidays is a small detail that JP users notice. Use the locale's calendar API rather than hardcoding.

Fiscal year

Japan's fiscal year runs April 1 – March 31, not Jan–Dec. Finance and business apps should accommodate or default to this convention.

Decimal and Percentage

Percentage format

50% — same as English; the % sign is universal.

Decimal numbers

3.14 — period as decimal separator, same as English.

Negative numbers

Standard convention in app UI is the leading minus: -100. Parentheses-style accounting (100) is rare in JP consumer apps.

A Self-Check

  • Dates use JP convention (yyyy/MM/dd or 年月日).
  • Times use 24-hour format.
  • Currency has no decimals for yen.
  • Phone numbers use hyphens between segments.
  • Postal codes display as 3-4 with hyphen.
  • Address fields are structured (prefecture, city, block).
  • Postal code triggers prefecture/city auto-fill.
  • Name fields include katakana reading inputs.
  • Calendar week starts on Sunday for JP locale.
  • Era format is supported if app context calls for it.

Where to Go Next


We audit shipping apps for the formatting issues above as part of every JP QA engagement. Contact us for a JP locale audit.