Angka dan tanggal tidak memiliki bentuk teks yang universal: bulan Agustus bernama “Agustus” dalam bahasa Indonesia dan “August” dalam bahasa Inggris, dengan puluhan bahasa lain menyusul. Class CultureInfo di namespace System.Globalization membungkus kumpulan aturan tersebut: nama hari dan bulan, pemisah tanggal dan angka, simbol mata uang, hingga urutan pengurutan kata.
Dua Cara Memakai Culture #
- Culture eksplisit: kita mengirim
CultureInfosebagai argumenToStringatauParse; hasilnya bisa diprediksi di mesin mana pun. - Culture default (
CurrentCulture): format tanpa argumen mengikuti pengaturan mesin, sehingga keluaran berubah-ubah antar lingkungan; culture ini dibedah pada bab Globalization.
Perbandingan id-ID dan InvariantCulture #
Bab ini sengaja memakai culture id-ID sebagai contoh, dipasangkan dengan CultureInfo.InvariantCulture yang meniadakan aturan budaya untuk kebutuhan format mesin:
csharp
var idID = CultureInfo.GetCultureInfo("id-ID");
var invariant = CultureInfo.InvariantCulture;
DateTime nilai = new DateTime(2025, 8, 17);
Console.WriteLine(nilai.ToString("dd MMMM yyyy", idID));
Console.WriteLine(nilai.ToString("dd MMMM yyyy", invariant));
Console.WriteLine(idID.Name);
Console.WriteLine(idID.NumberFormat.CurrencySymbol);Output yang Dihasilkan:
text
17 Agustus 2025
17 August 2025
id-ID
RpMari kita bedah baris demi baris:
- Baris 1 (
GetCultureInfo("id-ID")): method mengembalikan instance culture Indonesia yang sudah tersimpan dalam cache runtime; culture yang tidak terdaftar melemparCultureNotFoundException. - Baris 6 (
ToString ... idID): penentuMMMMmembaca nama bulan dari tabel culture, sehingga munculAgustus. - Baris 7 (
ToString ... invariant): culture yang sama menghasilkanAugustkarenaInvariantCulturememakai tabel bahasa Inggris netral. - Baris 8-9: properti
Namemengembalikan identifierid-ID, danNumberFormat.CurrencySymbolmenunjukkanRpsebagai simbol rupiah.