Share via


Tipo di dati Date (Visual Basic)

Aggiornamento: novembre 2007

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.

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 internazionali 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 internazionali 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 internazionali è 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 internazionali è 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 internazionali utilizzate o in un formato personalizzato, fornire il valore alla Funzione Format, specificando Formati di data/ora predefiniti (funzione Format) o Formati di data/ora definiti dall'utente (funzione Format). Nell'esempio riportato di seguito viene illustrata questa situazione.

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 internazionali 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 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

Concetti

Utilizzo efficiente dei tipi di dati

Modifiche ai tipi di dati per gli utenti di Visual Basic 6.0

Riferimenti

Riepilogo dei tipi di dati (Visual Basic)

System.DateTime

Funzioni di conversione del tipo

Riepilogo della conversione