Corso ASP.NET AJAX Extensions in pieno fermento e domanda interessante posta alla fine della prima giornata. Gran bella cosa che ASP.NET AJAX supporti culture diverse e permetta la formattazione di date, orari e numeri secondo la cultura vigente. Ma esiste un modo per formattare la data (per esempio) sempre nel formato standard della cultura corrente? Farlo da server non è mai stato un problema; farlo da client e in JavaScript sì. Ma soprattutto perché in JavaScript manca l'informazione su quella che è la cultura vigente. Sul server--tipicamente nel code-behind--lo impostiamo/leggiamo tramite la proprietà Culture della classe Page. Ma sul client?
Quando lo script manager ha EnableScriptGlobalization uguale a true, allora la pagina client contiene una stringa con tutte le informazioni necessarie. Questi dati sono elaborati al bootstrap della libreria client AJAX ed esposti tramite l'oggetto client Sys.CultureInfo.CurrentCulture. Per formattare una data con un layout preciso faremo come segue:
var d = new Date();
alert(d.localeFormat("dddd, dd MMMM yyyy, hh:mm:ss");
Per formattare una data nel formato standard della cultura corrente, faremo come segue:
var d = new Date();
cultureFormat = Sys.CultureInfo.CurrentCulture.dateTimeFormat.ShortDatePattern;
alert(d.localeFormat(cultureFormat));
Ovviamente se ci interessa il layout lungo useremo la proprietà LongDatePattern.
posted @ martedì 6 febbraio 2007 1.43