Terkadang kita sebagai programmer merasa kesulitan terhadap setting komputer. Misal tanggal di program mengharuskan setting sesuai regional Indonesia misal dd/mm/YYYY tetapi di komputer pengguna malah settingnya US, atau mm/dd/YYYY. Atau sebalikanya.
Sedangkan untuk memberikan instruksi kepada Pengguna untuk merubah regional settingnya bukan hal yang tepat, karena bisa jadi ada program lain di komputer Pengguna yang membutuhkan regional setting yang lain.
Solusinya kita harus ubah regional setting hanya di dalam program yang kita buat tentu saja secara pemrograman. Di Visual Basic.NET kita bisa gunakan kode program berikut ini :
My.Application.ChangeCulture("en-US") 'Untuk mengubah setting menjadi English United States
My.Application.ChangeCulture("id-ID") 'Untuk mengubah setting menjadi Indonesia
Atau untuk mengubah setting hanya pada satu thread saja bisa digunakan
Imports System.Threading
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US", False)
' Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US", False)
'Thread.CurrentThread.CurrentCulture
MsgBox(Thread.CurrentThread.CurrentUICulture)
Sedangkan untuk mengubah Regional Setting Windows dari Registry, gunakan fungsi berikut :
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\International", "sShortDate", "dd/MM/yyyy")
Trik untuk sesaat menyimpan Regional Setting kemudian sesaat mengubah Regional Setting menjadi Indonesia misal saat mencetak Report, kemudian Kembalikan lagi ke Regional Aslinya :)
Dim asal as String = My.Application.Culture.Name
My.Application.ChangeCulture("id-ID")
'... Lakukan Sesuatu
My.Application.ChangeCulture(asal)
Semoga bermanfaat