Rappresentazione stringa localizzata e non-localizzata di una data
Un valore Date è diverso dalla sua rappresentazione in formato stringa. [Nota 1]
La conversione di un valore Date può avvenire con "localizzazione" o "senza localizzazione".
Per comprendere la differenza fra una rappresentazione "localizzata" di un valore Date e una "non-localizzata", è opportuno leggere la documentazione delle funzioni Val(), Str(), Format(), CDate() e CStr().
Se si converte una stringa in una data, si presume che la stringa sia un orario UTC, *non* un orario locale.
Per convertire un'ora "locale" come stringa in una data, è necessario utilizzare la funzione "Val()", oppure si può usare la funzione "Date()", se si abbia la data divisa nei suoi diversi componenti.
"CStr()" e "CFloat()" assumono il formato "americano" (che è come "UTC" per i numeri).
"Str()" e "Val()" assumono invece il formato "locale".
Di seguito mostriamo un esempio con l'uso delle funzioni "Date()" e "CDate()":
Public Sub Main() Dim strDat As String strDat = "1970-09-26T16:00:00+00:00" strDat = Scan(strDat, "*-*-*T*")[1] &/ Scan(strDat, "*-*-*T*")[2] &/ Scan(strDat, "*-*-*T*")[0] Print "Se la data deve essere localizzata: "; Date(strDat) Print "Se la data *non* deve essere localizzata: "; CDate(strDat) End
Note
[1] Vedere assolutamente la seguente pagina: http://gambaswiki.org/wiki/doc/date?l=it