Tipo di dati Date (Visual Basic)Date Data Type (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.Holds IEEE 64-bit (8-byte) values that represent dates ranging from January 1 of the year 0001 through December 31 of the year 9999, and times from 12:00:00 AM (midnight) through 11:59:59.9999999 PM. Ogni incremento rappresenta 100 nanosecondi di tempo trascorso dall'inizio del 1° gennaio dell'anno 1 del calendario gregoriano.Each increment represents 100 nanoseconds of elapsed time since the beginning of January 1 of the year 1 in the Gregorian calendar. Il valore massimo rappresenta 100 nanosecondi prima dell'inizio del 1° gennaio dell'anno 10000.The maximum value represents 100 nanoseconds before the beginning of January 1 of the year 10000.

NoteRemarks

Usare il tipo di dati Date per contenere valori di data, di ora o entrambi.Use the Date data type to contain date values, time values, or date and time values.

Il valore predefinito di Date è 00.00.00 (mezzanotte) del 1° gennaio 0001.The default value of Date is 0:00:00 (midnight) on January 1, 0001.

È possibile ottenere la data e l'ora corrente dalla classe DateAndTime.You can get the current date and time from the DateAndTime class.

Requisiti di formatoFormat Requirements

È necessario racchiudere un valore letterale Date tra simboli di cancelletto (# #).You must enclose a Date literal within number signs (# #). 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#.You must specify the date value in the format M/d/yyyy, for example #5/31/1993#, or yyyy-MM-dd, for example #1993-5-31#. Quando si specifica prima l'anno, è possibile usare le barre.You can use slashes when specifying the year first. Questo requisito è indipendente dalle impostazioni locali usate e dalle impostazioni relative al formato di data e ora del computer.This requirement is independent of your locale and your computer's date and time format settings.

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.The reason for this restriction is that the meaning of your code should never change depending on the locale in which your application is running. Si supponga di impostare come hardcoded il valore letterale Date``#3/4/1998# per rappresentare la data del 4 marzo 1998.Suppose you hard-code a Date literal of #3/4/1998# and intend it to mean March 4, 1998. Se nelle impostazioni locali è definito il formato mm/gg/aaaa, la compilazione di 3/4/1998 viene eseguita nel modo desiderato.In a locale that uses mm/dd/yyyy, 3/4/1998 compiles as you intend. Si supponga, tuttavia, di distribuire l'applicazione in molti paesi o aree geografiche.But suppose you deploy your application in many countries/regions. Se nelle impostazioni locali è definito il formato gg/mm/aaaa, il valore letterale hardcoded verrà compilato come 3 aprile 1998.In a locale that uses dd/mm/yyyy, your hard-coded literal would compile to April 3, 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.In a locale that uses yyyy/mm/dd, the literal would be invalid (April 1998, 0003) and cause a compiler error.

SoluzioniWorkarounds

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.To convert a Date literal to the format of your locale, or to a custom format, supply the literal to the Format function, specifying either a predefined or user-defined date format. Nell'esempio che segue viene illustrato quanto descritto.The following example demonstrates this.

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.Alternatively, you can use one of the overloaded constructors of the DateTime structure to assemble a date and time value. L'esempio seguente crea un valore per rappresentare le ore 12.14 del 31 maggio 1993.The following example creates a value to represent May 31, 1993 at 12:14 in the afternoon.

Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)

Formato dell'oraHour Format

È possibile specificare il valore dell'ora nel formato 12 o 24 ore, ad esempio #1:15:30 PM# o #13:15:30#.You can specify the time value in either 12-hour or 24-hour format, for example #1:15:30 PM# or #13:15:30#. Tuttavia, se non si specificano i minuti o i secondi, è necessario indicare AM o PM.However, if you do not specify either the minutes or the seconds, you must specify AM or PM.

Valori predefiniti di data e oraDate and Time Defaults

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.If you do not include a date in a date/time literal, Visual Basic sets the date part of the value to January 1, 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).If you do not include a time in a date/time literal, Visual Basic sets the time part of the value to the start of the day, that is, midnight (0:00:00).

Conversione di tipiType Conversions

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.If you convert a Date value to the String type, Visual Basic renders the date according to the short date format specified by the run-time locale, and it renders the time according to the time format (either 12-hour or 24-hour) specified by the run-time locale.

Suggerimenti per la programmazioneProgramming Tips

  • Considerazioni sull'interoperabilità.Interop Considerations. 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.If you are interfacing with components not written for the .NET Framework, for example Automation or COM objects, keep in mind that date/time types in other environments are not compatible with the Visual Basic Date type. Se si passa un argomento di data/ora a un componente di questo tipo, nel nuovo codice Visual Basic è necessario dichiararlo come Double anziché come Date e usare i metodi di conversione DateTime.FromOADate e DateTime.ToOADate.If you are passing a date/time argument to such a component, declare it as Double instead of Date in your new Visual Basic code, and use the conversion methods DateTime.FromOADate and DateTime.ToOADate.

  • Digitare i caratteri.Type Characters. Datenon ha un carattere di tipo letterale o un carattere di tipo identificatore.Date has no literal type character or identifier type character. Il compilatore considera tuttavia i valori letterali racchiusi tra simboli del cancelletto (# #) come valori Date.However, the compiler treats literals enclosed within number signs (# #) as Date.

  • Tipo di Framework.Framework Type. Il tipo corrispondente in .NET Framework è la struttura System.DateTime.The corresponding type in the .NET Framework is the System.DateTime structure.

EsempioExample

Una variabile o una costante del tipo di dati Date contiene sia la data che l'ora.A variable or constant of the Date data type holds both the date and the time. Questa condizione è illustrata nell'esempio seguente.The following example illustrates this.

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

Vedere ancheSee also