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 0.00.00 (mezzanotte) e le 23.59.59.9999999. Ciascun incremento rappresenta 100 nanosecondi di tempo trascorso dall'inizio dell'1 gennaio dell'anno 1 del calendario gregoriano. Il valore massimo rappresenta 100 nanosecondi prima dell'inizio dell'1 gennaio dell'anno 10000.

Note

Utilizzare il tipo di dati Date per contenere valori di data, di ora o entrambi.

Il valore predefinito di Date è 0.00.00 (mezzanotte) dell'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#. Questo requisito è indipendente dalle impostazioni locali utilizzate 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 le quali 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 diversi paesi. 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

Per convertire un valore letterale Date nel formato delle impostazioni locali utilizzate o in un formato personalizzato, fornire il valore letterale alla funzione Format, specificando un formato di data predefinito o definito dall'utente. Nell'esempio che segue viene illustrato quanto descritto.

MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))

In alternativa, è possibile utilizzare uno dei costruttori di overload della struttura DateTime per assemblare valori di data e ora. Nell'esempio riportato di seguito viene creato 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, la parte del valore relativa alla data verrà impostata sull'1 gennaio 0001. Se non si include un'ora in un valore letterale di data/ora, la parte del valore relativa all'ora verrà impostata sull'inizio della giornata, ossia mezzanotte (0.00.00).

Conversioni di tipi

Se un valore Date viene convertito nel tipo String, viene eseguito 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 eseguirne la dichiarazione come Double anziché come Date e utilizzare i metodi di conversione DateTime.FromOADate e DateTime.ToOADate.

  • Caratteri tipo. Date non ha alcun carattere di tipo letterale o carattere identificatore di tipo. Il compilatore considera tuttavia i valori letterali racchiusi tra simboli del cancelletto (# #) come valori Date.

  • Tipo 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. Nell'esempio riportato di seguito viene illustrata questa situazione.

Dim someDateAndTime As Date = #8/13/2002 12:14 PM#

Vedere anche

Riferimenti

Riepilogo dei tipi di dati (Visual Basic)

System.DateTime

Funzioni di conversione del tipo (Visual Basic)

Riepilogo della conversione (Visual Basic)

Concetti

Utilizzo efficiente dei tipi di dati (Visual Basic)