Node.js
Intl.DateTimeFormat
Intl.DateTimeFormat ile yerelleştirme öğrenirsin.
Intl.DateTimeFormat
Tarihi kullanıcıya göstermek için Intl.DateTimeFormat yerelleştirme (localization) yapar. Bir yerel kodu (locale) ve seçenekler (options) alır; çıktıyı o yerele göre biçimlendirir.
Örnek: new Intl.DateTimeFormat("tr-TR", { day: "numeric", month: "long", year: "numeric" }). .format(date) ile biçimlendirirsin. tr-TR Türkiye Türkçesi; en-US Amerikan İngilizcesi; de-DE Almanca. month: "long" ayın tam adını (Mart); month: "short" kısaltmayı (Mar); month: "numeric" sayıyı (3) verir. Saat dilimi için timeZone: "UTC" seçeneğini eklersin; böylece çıktı makinenin saat diliminden etkilenmez. Bu, çok dilli uygulamalarda tarih göstermenin standart yoludur.
Yerel kodları
Yerel kodu dil-bölge biçimindedir: tr-TR, en-US, en-GB, de-DE, fr-FR, ja-JP. Aynı dil farklı bölgelerde farklı biçimler kullanır: en-US ay/gün/yıl, en-GB gün/ay/yıl sırasını kullanır.
Örnek: new Intl.DateTimeFormat("en-US").format(new Date("2024-03-15")) çıktısı 3/15/2024; en-GB için 15/03/2024'tür. Yerel belirlemezsen Node.js makinenin varsayılanını kullanır; bu da testleri kırılgan yapar. Testlerde her zaman açık yerel kodu ver. month: "long" ile ay adı yerelin dilinde gelir: tr-TR'de "Mart", en-US'de "March". Bu dersin ödevinde tr-TR yereli ile UTC saat dilimini birlikte kullanacağız.
Uygulama Tarihi yerel biçimde yazdır
const date = new Date("2024-03-15T00:00:00Z"); tanımla. const fmt = new Intl.DateTimeFormat("tr-TR", { day: "numeric", month: "long", year: "numeric", timeZone: "UTC" }); ile biçimlendirici yarat. console.log(fmt.format(date)) ile yazdır.
Örnek çözümü göster
const date = new Date("2024-03-15T00:00:00Z");
const fmt = new Intl.DateTimeFormat("tr-TR", { day: "numeric", month: "long", year: "numeric", timeZone: "UTC" });
console.log(fmt.format(date));
Kendini test et
-
Seçeneği çıktısına eşle
- day: numeric
- Gün sayısı
- month: long
- Tam ay adı
- year: numeric
- Yıl sayısı
- timeZone: UTC
- UTC saat dilimi
-
Intl.DateTimeFormat("tr-TR", { month: "long" }) ay adı ne verir?
new Intl.DateTimeFormat("tr-TR", { month: "long" }).format(new Date("2024-03-15"))
Cevabı göster
Mart — tr-TR yerelinde Mart ayı 'Mart' olarak yazılır.
-
DateTimeFormat çağrısını tamamla
const fmt = new Intl.____("tr-TR", { day: "numeric", month: "long", year: "numeric", timeZone: "UTC" });
Cevabı göster
const fmt = new Intl.DateTimeFormat("tr-TR", { day: "numeric", month: "long", year: "numeric", timeZone: "UTC" });
Sıradaki ders: performance.now