Rappresentazione stringa localizzata e non-localizzata di una data

Da Gambas-it.org - Wikipedia.

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