Gestire la data nel formato ISO 8601 - Script ASP

Chiunque si sia cimentato con l'interazione Database - Linguaggio di programmazione avrà dovuto scontrarsi con l'ostico problema di gestione dei formati data.
Il problema principale è che uno stesso linguaggio ed un'istruzione apparentemente identica si comporta in modo differente a seconda del database e del formato sessione che è stato impostato.

Ad esempio gli inglesi utilizzano un formato data mm/dd/yyyy mentre il formato italiano è dd/mm/yyyy .
Di norma, gli applicativi ed i server se non istruiti diversamente utilizzeranno un formato inglese invertendo il mese con il giorno.

Un altro problema tuttavia si presenta nel formato italiano dove, anche forzando l'uso di dd/mm/yyyy può accadere che nelle date dove il giorno risulta minore del mese questi vengano scambiati.
Ad esempio una data tipo 11/06/2004 che in formato italiano equivale al 11 giugno potrebbe venire erroneamente interpretata come 06 novembre in formato inglese.

Si è quindi dovuto definire un formato standard per l'uso delle date che è di supporto nativo per tutti i database web oriented di medio alto livello.

Il formato ISO 8601 Date Format prevede una sintassi standard del tipo yyyy/mm/dd hh:mm:ss dove il carattere / può essere sostituito in modo indifferente con il carattere -, in genere a seconda delle specifiche del formato linguistico.
Gli americani tendono ad usare lo / mentre gli europei il -.

Per gestire con ASP le date in tale formato facilmente interpretabile correttamente da tutti i database è sufficiente appoggiarci alle funzioni [F]Year()[/F], [F]Month()[/F], [F]Day()[/F], [F]Hour()[/F], [F]Minute()[/F] e [F]Second()[/F] per tagliare la data a piacimento e ricomporla come si desidera.

L'esempio seguente è una funzione usata per trasformare una variabile in formato data generico al formato ISO 8601 per prepararla ad un inserimento o ad una interazione con un database.

<% 

public function formatDateTimeDb(dtmDateValue, dtmTimeValue) 

formatDateTimeDb = Year(dtmDateValue) &_ 
"/" & Month(dtmDateValue) &_ 
"/" & Day(dtmDateValue) &_ 
" " & dtmTimeValue 

end function 

%> 

La funzione accetta come parametri una data ed un'ora e restituisce una variabile nel formato data ISO.

Un esempio di utilizzo passando data ed ora attuale:

<% 

dtmDataCorretta = formatDateTimeDb(Now(), Time()) 
Response.Write(dtmDataCorretta) 

%> 

asp.weppos.com e asp.weppos.it sono di proprietà di Simone Carletti.
Scopri il mio sito o visita il mio Simone Carletti's profile on LinkedIn