Intl.DateTimeFormat

Formatuje daty i godziny zgodnie z zasadami wybranego języka i strefy czasowej.

Zwraca
Obiekt formatera z metodami format(), formatToParts() i formatRange().
Na tej stronie

Przykład

#
JavaScript
const lesson = new Date(Date.UTC(2026, 8, 28, 10, 30))

const full = new Intl.DateTimeFormat('pl-PL', { dateStyle: 'full', timeZone: 'UTC' })
const short = new Intl.DateTimeFormat('pl-PL', { dateStyle: 'short', timeZone: 'UTC' })

console.log(full.format(lesson))
console.log(short.format(lesson))
Konsola
poniedziałek, 28 września 2026
28.09.2026

Definicja i zastosowanie

#

Intl.DateTimeFormat zamienia obiekt Date na czytelny tekst, na przykład „poniedziałek, 28 września 2026” albo „28.09.2026”. Sam dobiera nazwy miesięcy i dni tygodnia w wybranym języku, ich poprawną odmianę oraz kolejność składników.

Najprościej użyć opcji dateStyle i timeStyle z wartościami "full", "long", "medium" lub "short". Gdy potrzebujesz większej kontroli, podaj pojedyncze składniki: weekday, year, month, day, hour, minute. Nie można ich łączyć z dateStyle ani timeStyle.

Opcja timeZone określa strefę czasową, w której ma być pokazana data, np. "Europe/Warsaw" albo "UTC". Bez niej formater używa strefy użytkownika, więc ta sama chwila wyświetli się inaczej w Polsce, a inaczej w Japonii. Przykłady na tej stronie podają strefę jawnie, żeby wynik był zawsze taki sam.

Składnia

#
Składnia
new Intl.DateTimeFormat(locales)
new Intl.DateTimeFormat(locales, options)

formatter.format(date)

Parametry

#
  • locales

    opcjonalny, napis lub tablica

    Kod języka, np. "pl-PL" albo "en-US". Pominięty oznacza język przeglądarki.
  • options

    opcjonalny obiekt

    Ustawienia, m.in. dateStyle, timeStyle, weekday, year, month, day, hour, minute i timeZone.

Więcej przykładów

#
Ta sama chwila w różnych strefach
JavaScript
const liveLesson = new Date(Date.UTC(2026, 8, 28, 10, 30))
const zones = ['Europe/Warsaw', 'Asia/Tokyo', 'America/New_York']

for (const timeZone of zones) {
  const time = new Intl.DateTimeFormat('pl-PL', { timeStyle: 'short', timeZone }).format(liveLesson)
  console.log(`${timeZone}: ${time}`)
}
Konsola
Europe/Warsaw: 12:30
Asia/Tokyo: 19:30
America/New_York: 06:30
Wybrane składniki daty
JavaScript
const date = new Date(Date.UTC(2026, 8, 28, 10, 30))

const weekday = new Intl.DateTimeFormat('pl-PL', { weekday: 'long', timeZone: 'UTC' })
const dayMonth = new Intl.DateTimeFormat('pl-PL', { day: 'numeric', month: 'long', timeZone: 'UTC' })
const time = new Intl.DateTimeFormat('pl-PL', { hour: '2-digit', minute: '2-digit', timeZone: 'UTC' })

console.log(weekday.format(date))
console.log(dayMonth.format(date))
console.log(time.format(date))
Konsola
poniedziałek
28 września
10:30
Inne języki
JavaScript
const date = new Date(Date.UTC(2026, 8, 28))
const options = { dateStyle: 'full', timeZone: 'UTC' }

console.log(new Intl.DateTimeFormat('en-US', options).format(date))
console.log(new Intl.DateTimeFormat('de-DE', options).format(date))
Konsola
Monday, September 28, 2026
Montag, 28. September 2026

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Jeśli wszyscy użytkownicy mają widzieć tę samą godzinę (np. termin wydarzenia w Polsce), podaj timeZone: "Europe/Warsaw".
  • Formater twórz raz i używaj wielokrotnie, np. przy wyświetlaniu listy wiadomości z datami.
  • Do zapisu typu „wczoraj” albo „za 3 dni” służy pokrewny Intl.RelativeTimeFormat.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.