Tipo di dati Date (Visual Basic)
Contiene valori a 64 bit (8 byte) conformi alle specifiche IEEE che rappresentano le date comprese tra l'1 gennaio dell'anno 0001 e il 31 dicembre dell'anno 9999 e le ore comprese tra le 00.00.00 (mezzanotte) e le 23.59.59.9999999. Ogni incremento rappresenta 100 nanosecondi di tempo trascorso dall'inizio del 1° gennaio dell'anno 1 del calendario gregoriano. Il valore massimo rappresenta 100 nanosecondi prima dell'inizio del 1° gennaio dell'anno 10000.
Osservazioni:
Usare il tipo di dati Date
per contenere valori di data, di ora o entrambi.
Il valore predefinito di Date
è 00.00.00 (mezzanotte) del 1° gennaio 0001.
È possibile ottenere la data e l'ora corrente dalla classe DateAndTime.
Requisiti di formato
È necessario racchiudere un valore letterale Date
tra simboli di cancelletto (# #
). Il valore della data deve essere specificato nel formato M/g/aaaa, ad esempio #5/31/1993#
, oppure aaaa-MM-gg, ad esempio #1993-5-31#
. Quando si specifica prima l'anno, è possibile usare le barre. Questo requisito è indipendente dalle impostazioni locali usate e dalle impostazioni relative al formato di data e ora del computer.
Il motivo di questa limitazione è che il significato del codice non deve mai cambiare a seconda delle impostazioni locali con cui l'applicazione viene eseguita. Si supponga di impostare come hardcoded il valore letterale Date
#3/4/1998#
per rappresentare la data del 4 marzo 1998. Se nelle impostazioni locali è definito il formato mm/gg/aaaa, la compilazione di 3/4/1998 viene eseguita nel modo desiderato. Si supponga però di distribuire l'applicazione in molti paesi/aree geografiche. Se nelle impostazioni locali è definito il formato gg/mm/aaaa, il valore letterale hardcoded verrà compilato come 3 aprile 1998. Se invece è definito il formato aaaa/mm/gg, il valore letterale non sarà valido (1998 aprile 0003) e verrà generato un errore del compilatore.
Soluzioni alternative
Per convertire un valore letterale Date
nel formato delle impostazioni locali in uso o in un formato personalizzato, fornire il valore letterale alla funzione Format, specificando un formato di data predefinito o definito dall'utente. L'esempio seguente illustra questa operazione.
MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))
In alternativa, si può usare uno dei costruttori di overload della struttura DateTime per assemblare un valore di data e ora. L'esempio seguente crea un valore per rappresentare le ore 12.14 del 31 maggio 1993.
Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)
Formato dell'ora
È possibile specificare il valore dell'ora nel formato 12 o 24 ore, ad esempio #1:15:30 PM#
o #13:15:30#
. Tuttavia, se non si specificano i minuti o i secondi, è necessario indicare AM o PM.
Valori predefiniti di data e ora
Se non si include una data in un valore letterale di data/ora, Visual Basic imposta la parte del valore relativa alla data sul 1° gennaio 0001. Se non si include un'ora in un valore letterale di data/ora, Visual Basic imposta la parte del valore relativa all'ora sull'inizio della giornata, ossia mezzanotte (00.00.00).
Conversione di tipi
Se un valore Date
viene convertito nel tipo String
, Visual Basic esegue il rendering della data e dell'ora rispettivamente in base al formato breve e al formato 12 o 24 ore specificati nelle impostazioni locali di runtime.
suggerimenti per la programmazione
Considerazioni sull'interoperabilità. Se si prevede l'interazione con componenti non scritti per .NET Framework, ad esempio oggetti COM o di automazione, tenere presente che i tipi di data/ora in altri ambienti non sono compatibili con il tipo
Date
di Visual Basic. Se si passa un argomento di data/ora a un componente di questo tipo, nel nuovo codice Visual Basic è necessario dichiararlo comeDouble
anziché comeDate
e usare i metodi di conversione DateTime.FromOADate e DateTime.ToOADate.Caratteri tipo.
Date
non ha alcun carattere di tipo letterale o di tipo identificatore. Il compilatore considera tuttavia i valori letterali racchiusi tra simboli del cancelletto (# #
) come valoriDate
.Tipo di framework. Il tipo corrispondente in .NET Framework è la struttura System.DateTime.
Esempio
Una variabile o una costante del tipo di dati Date
contiene sia la data che l'ora. Ciò è illustrato nell'esempio seguente.
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#