Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Struttura DateTime

Rappresenta un istante di tempo, in genere espresso come una data e ora del giorno.

Per esplorare il codice sorgente.NET Framework per questo tipo, vedere Origine di riferimento.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
public struct DateTime : IComparable, IFormattable, 
	IConvertible, ISerializable, IComparable<DateTime>, IEquatable<DateTime>

Il tipo DateTime espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDateTime(Int64)Inizializza una nuova istanza della struttura DateTime su un numero di segni di graduazione specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDateTime(Int64, DateTimeKind)Inizializza una nuova istanza della struttura DateTime su un numero specificato di segni di graduazione e sull'ora UTC (Coordinated Universal Time) oppure sull'ora locale.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDateTime(Int32, Int32, Int32) Inizializza una nuova istanza della struttura DateTime sull'anno, il mese ed il giorno specificati.
Metodo pubblicoSupportato da XNA FrameworkDateTime(Int32, Int32, Int32, Calendar) Inizializza una nuova istanza della struttura DateTime sull'anno, il mese ed il giorno determinati per il calendario specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDateTime(Int32, Int32, Int32, Int32, Int32, Int32) Inizializza una nuova istanza della struttura DateTime sull'anno, il mese, il giorno, l'ora, il minuto ed il secondo specificati.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) Inizializza una nuova istanza della struttura DateTime sull'anno, il mese, il giorno, l'ora, il minuto, il secondo e l'ora UTC (Coordinated Universal Time) oppure l'ora locale specificati.
Metodo pubblicoSupportato da XNA FrameworkDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) Inizializza una nuova istanza della struttura DateTime sull'anno, il mese, il giorno, l'ora, il minuto ed il secondo determinati per il calendario specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) Inizializza una nuova istanza della struttura DateTime sull'anno, il mese, il giorno, l'ora, il minuto, il secondo ed il millisecondo specificati.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) Inizializza una nuova istanza della struttura DateTime sull'anno, il mese, il giorno, l'ora, il minuto, il secondo, il millisecondo e l'ora UTC (Coordinated Universal Time) oppure l'ora locale specificati.
Metodo pubblicoSupportato da XNA FrameworkDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) Inizializza una nuova istanza della struttura DateTime sull'anno, il mese, il giorno, l'ora, il minuto, il secondo ed il millisecondo determinati per il calendario specificato.
Metodo pubblicoSupportato da XNA FrameworkDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) Inizializza una nuova istanza della struttura DateTime sull'anno, il mese, il giorno, l'ora, il minuto, il secondo, il millisecondo e l'ora UTC (Coordinated Universal Time) oppure l'ora locale specificati per il calendario indicato.
In alto

  NomeDescrizione
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDate Ottiene il componente della data di questa istanza.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDay Ottiene il giorno del mese rappresentato da questa istanza.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDayOfWeek Ottiene il giorno della settimana rappresentato da questa istanza.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDayOfYear Ottiene il giorno dell'anno rappresentato da questa istanza.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreHour Ottiene il componente relativo all'ora della data rappresentata da questa istanza.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreKind Ottiene un valore che indica se l'ora rappresentata da questa istanza si basa sull'ora locale, sull'ora UTC (Coordinated Universal Time) o su nessuna delle due.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMillisecond Ottiene il componente relativo ai millisecondi della data rappresentata da questa istanza.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMinute Ottiene il componente relativo ai minuti della data rappresentata da questa istanza.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMonth Ottiene il componente relativo al mese della data rappresentata da questa istanza.
Proprietà pubblicaMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreNow Ottiene un oggetto DateTime impostato sulla data e sull'ora correnti su questo computer, espresso come ora locale.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSecond Ottiene il componente dei secondi della data rappresentata da questa istanza.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTicks Ottiene il numero di segni di graduazione che rappresentano la data e l'ora di questa istanza.
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTimeOfDay Ottiene l'ora del giorno per questa istanza.
Proprietà pubblicaMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTodayOttiene la data corrente.
Proprietà pubblicaMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreUtcNow Ottiene un oggetto DateTime impostato sulla data e sull'ora correnti su questo computer, espresso come ora UTC (Coordinated Universal Time).
Proprietà pubblicaSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreYear Ottiene il componente dell'anno della data rappresentata da questa istanza.
In alto

  NomeDescrizione
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddRestituisce un nuovo oggetto DateTime che aggiunge il valore dell'oggetto TimeSpan specificato al valore di questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddDaysRestituisce un nuovo oggetto DateTime che aggiunge il numero specificato di giorni al valore di questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddHoursRestituisce un nuovo oggetto DateTime che aggiunge il numero specificato di ore al valore di questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddMillisecondsRestituisce un nuovo oggetto DateTime che aggiunge il numero specificato di millisecondi al valore di questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddMinutesRestituisce un nuovo oggetto DateTime che aggiunge il numero specificato di minuti al valore di questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddMonthsRestituisce un nuovo oggetto DateTime che aggiunge il numero specificato di mesi al valore di questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddSecondsRestituisce un nuovo oggetto DateTime che aggiunge il numero specificato di secondi al valore di questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddTicksRestituisce un nuovo oggetto DateTime che aggiunge il numero specificato di segni di graduazione al valore di questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAddYearsRestituisce un nuovo oggetto DateTime che aggiunge il numero specificato di anni al valore di questa istanza.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreCompareConfronta due istanze di DateTime e restituisce un intero che indica se la prima istanza è precedente, uguale o successiva alla seconda istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreCompareTo(DateTime) Confronta il valore di questa istanza con un valore DateTime specificato e restituisce un valore intero che indica se questa istanza è precedente, uguale o successiva al valore DateTime specificato.
Metodo pubblicoSupportato da XNA FrameworkCompareTo(Object) Confronta il valore di questa istanza con un oggetto specificato contenente un valore DateTime specificato e restituisce un valore intero che indica se questa istanza è precedente, uguale o successiva al valore DateTime specificato.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreDaysInMonth Restituisce il numero di giorni nel mese e nell'anno specificati.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEquals(DateTime)Restituisce un valore che indica se il valore di questa istanza è uguale al valore dell'istanza di DateTime specificata.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEquals(Object) Restituisce un valore che indica se questa istanza è uguale ad un oggetto specificato. (Esegue l'override di ValueType.Equals(Object)).
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEquals(DateTime, DateTime) Restituisce un valore che indica se due istanze di DateTime hanno lo stesso valore di data e ora.
Metodo pubblicoMembro staticoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFromBinaryDeserializza un valore binario a 64 bit e ricrea un oggetto originale DateTime serializzato.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFromFileTime Converte l'ora di un file di Windows specificato in un'ora locale equivalente.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreFromFileTimeUtc Converte l'ora di un file di Windows specificato in un'ora UTC equivalente.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkFromOADateRestituisce un oggetto DateTime equivalente alla data di automazione OLE specificata.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetDateTimeFormats() Converte il valore di questa istanza in tutte le rappresentazioni in forma di stringa supportate dagli identificatori di formato di data e ora standard.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetDateTimeFormats(Char) Converte il valore di questa istanza in tutte le rappresentazioni in forma di stringa supportate dall'identificatore di formato di data e ora standard specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetDateTimeFormats(IFormatProvider) Converte il valore di questa istanza in tutte le rappresentazioni in forma di stringa supportate dagli identificatori di formato di data e ora standard e dalle informazioni di formattazione relative alle impostazioni di cultura specificate.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetDateTimeFormats(Char, IFormatProvider) Converte il valore di questa istanza in tutte le rappresentazioni in forma di stringa supportate dall'identificatore di formato di data e ora standard e dalle informazioni di formattazione specifiche delle impostazioni di cultura.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetHashCode Restituisce il codice hash per questa istanza. (Esegue l'override di ValueType.GetHashCode()).
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoSupportato da XNA FrameworkGetTypeCode Restituisce il valore dell'enumerazione TypeCode per il tipo valore DateTime.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreIsDaylightSavingTime Indica se questa istanza dell'oggetto DateTime è compresa nel periodo dell'ora legale del fuso orario corrente.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreIsLeapYearRestituisce un'indicazione che informa se l'anno specificato è bisestile.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParse(String) Converte la rappresentazione in forma di stringa di una data e di un'ora nel suo equivalente oggetto DateTime.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParse(String, IFormatProvider) Converte una determinata rappresentazione in forma di stringa di una data e di un'ora nel suo equivalente oggetto DateTime utilizzando le informazioni sul formato relative alle impostazioni di cultura specificate.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParse(String, IFormatProvider, DateTimeStyles) Converte una rappresentazione in forma di stringa di una data e di un'ora nel suo equivalente oggetto DateTime utilizzando le informazioni sul formato specifiche delle impostazioni di cultura e lo stile di formattazione specificati.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParseExact(String, String, IFormatProvider) Converte una determinata rappresentazione in forma di stringa di una data e di un'ora nel suo equivalente oggetto DateTime utilizzando il formato specificato e le informazioni sul formato relative alle impostazioni di cultura specificate. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a un formato specificato.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParseExact(String, String, IFormatProvider, DateTimeStyles) Converte una determinata rappresentazione in forma di stringa di una data e di un'ora nel suo equivalente oggetto DateTime utilizzando il formato, le informazioni sul formato specifiche delle impostazioni di cultura e lo stile specificati. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente al formato specificato o verrà generata un'eccezione.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParseExact(String, String[], IFormatProvider, DateTimeStyles) Converte una determinata rappresentazione in forma di stringa di una data e di un'ora nel suo equivalente oggetto DateTime utilizzando la matrice di formati, le informazioni sul formato specifiche delle impostazioni di cultura e lo stile specificati. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente ad almeno uno dei formati specificati o verrà generata un'eccezione.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSpecifyKind Crea un nuovo oggetto DateTime che ha lo stesso numero di segni di graduazione dell'oggetto DateTime specificato, ma viene definito come ora locale, ora UTC (Coordinated Universal Time) o nessuna delle due, a seconda di quanto indicato nel valore dell'enumerazione DateTimeKind specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSubtract(DateTime) Sottrae la data e l'ora specificate da questa istanza.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSubtract(TimeSpan) Sottrae la durata specificata da questa istanza.
Metodo pubblicoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToBinarySerializza l'oggetto DateTime corrente in un valore binario a 64 bit che può essere quindi utilizzato per ricreare l'oggetto DateTime.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToFileTimeConverte il valore dell'oggetto DateTime corrente in un'ora di un file di Windows.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToFileTimeUtcConverte il valore dell'oggetto DateTime corrente in un'ora di un file di Windows.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToLocalTimeConverte il valore dell'oggetto DateTime corrente in un'ora locale.
Metodo pubblicoSupportato da XNA FrameworkToLongDateString Converte il valore dell'oggetto DateTime corrente nella sua equivalente rappresentazione in forma di stringa di data estesa.
Metodo pubblicoSupportato da XNA FrameworkToLongTimeString Converte il valore dell'oggetto DateTime corrente nella sua equivalente rappresentazione in forma di stringa estesa dell'ora.
Metodo pubblicoSupportato da XNA FrameworkToOADate Converte il valore di questa istanza nella data di automazione OLE equivalente.
Metodo pubblicoSupportato da XNA FrameworkToShortDateString Converte il valore dell'oggetto DateTime corrente nella sua equivalente rappresentazione in forma di stringa breve della data.
Metodo pubblicoSupportato da XNA FrameworkToShortTimeString Converte il valore dell'oggetto DateTime corrente nella sua equivalente rappresentazione in forma di stringa breve dell'ora.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString() Converte il valore dell'oggetto DateTime corrente nella sua equivalente rappresentazione in forma di stringa. (Esegue l'override di ValueType.ToString()).
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString(IFormatProvider) Converte il valore dell'oggetto DateTime corrente nella sua equivalente rappresentazione in forma di stringa, utilizzando le informazioni sul formato relative alle impostazioni di cultura specificate.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString(String) Converte il valore dell'oggetto DateTime corrente nella sua equivalente rappresentazione in forma di stringa utilizzando il formato specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString(String, IFormatProvider) Converte il valore dell'oggetto DateTime corrente nella sua equivalente rappresentazione in forma di stringa, utilizzando il formato specificato e le informazioni sul formato specifiche delle impostazioni di cultura indicate.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToUniversalTime Converte il valore dell'oggetto DateTime corrente nell'ora Coordinated Universal Time (UTC).
Metodo pubblicoMembro staticoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParse(String, DateTime) Converte la rappresentazione in forma di stringa specificata di una data e di un'ora nel suo equivalente oggetto DateTime e restituisce un valore che indica se la conversione è stata eseguita correttamente.
Metodo pubblicoMembro staticoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParse(String, IFormatProvider, DateTimeStyles, DateTime) Converte una determinata rappresentazione in forma di stringa di una data e di un'ora nel suo equivalente oggetto DateTime utilizzando le informazioni sul formato specifico delle impostazioni di cultura e lo stile di formattazione specifici, quindi restituisce un valore che indica se la conversione è stata eseguita correttamente.
Metodo pubblicoMembro staticoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) Converte una determinata rappresentazione in forma di stringa di una data e di un'ora nel suo equivalente oggetto DateTime utilizzando il formato, le informazioni sul formato specifiche delle impostazioni di cultura e lo stile specificati. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente a un formato specificato. Il metodo restituisce un valore che indica se la conversione è stata eseguita correttamente.
Metodo pubblicoMembro staticoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) Converte una determinata rappresentazione in forma di stringa di una data e di un'ora nel suo equivalente oggetto DateTime utilizzando la matrice di formati, le informazioni sul formato specifiche delle impostazioni di cultura e lo stile specificati. Il formato della rappresentazione in forma di stringa deve corrispondere esattamente ad almeno uno dei formati specificati. Il metodo restituisce un valore che indica se la conversione è stata eseguita correttamente.
In alto

  NomeDescrizione
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreAdditionAggiunge un determinato intervallo di tempo a una data e a un'ora specificate, producendo una data e un'ora nuove.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEqualityDetermina se due istanze specificate dell'oggetto DateTime sono uguali.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGreaterThan Determina se un oggetto DateTime specificato è successivo ad un altro oggetto DateTime specificato.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGreaterThanOrEqual Determina se un oggetto DateTime specificato rappresenta una data ed un'ora uguali o successive ad un altro oggetto DateTime specificato.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreInequalityDetermina se due istanze specificate dell'oggetto DateTime non sono uguali.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreLessThan Determina se un oggetto DateTime specificato è precedente ad un altro oggetto DateTime specificato.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreLessThanOrEqual Determina se un oggetto DateTime specificato rappresenta una data ed un'ora uguali o precedenti ad un altro oggetto DateTime specificato.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSubtraction(DateTime, DateTime)Sottrae una data e un'ora specificate da un'altra data e un'altra ora specificate e restituisce un intervallo di tempo.
Operatore pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreSubtraction(DateTime, TimeSpan)Sottrae un intervallo di tempo specificato da una data e un'ora specificate e restituisce una data e un'ora nuove.
In alto

  NomeDescrizione
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMaxValueRappresenta il valore massimo possibile di DateTime. Questo campo è di sola lettura.
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMinValue Rappresenta il valore minimo possibile di DateTime. Questo campo è di sola lettura.
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreIComparable.CompareTo Confronta l'istanza corrente con un altro oggetto dello stesso tipo e restituisce un valore intero che indica se questa istanza precede, segue o si trova nella stessa posizione dell'altro oggetto all'interno dell'ordinamento.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToBooleanInfrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToByteInfrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToCharInfrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToDateTimeInfrastruttura. Restituisce l'oggetto DateTime corrente.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToDecimalInfrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToDoubleInfrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToInt16Infrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToInt32Infrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToInt64Infrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToSByteInfrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToSingleInfrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToTypeInfrastruttura. Converte l'oggetto DateTime corrente in un oggetto di un tipo specificato.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToUInt16Infrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToUInt32Infrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToUInt64Infrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoISerializable.GetObjectDataCompila un oggetto SerializationInfo con i dati necessari a serializzare l'oggetto DateTime corrente.
In alto

Per visualizzare il codice sorgente.NET Framework per questo tipo, vedere Origine di riferimento. È possibile spostarsi nel codice sorgente online, il download di riferimento per la visualizzazione offline e avanzare nelle origini (patch incorporati e aggiornamenti) durante il debug; vedere istruzioni.

Il tipo di valore DateTime rappresenta i valori di data e ora compresi tra le ore 00.00.00 del 1° gennaio 0001 D.C. e le ore 23.59.59 del 31 dicembre 9999 D.C. (C.E.) nel calendario gregoriano.

I valori di ora vengono misurati in unità di 100 nanosecondi, definite segni di graduazione. Una determinata data è rappresentata dal numero di segni di graduazione a partire dalle ore 0:00 del 1° gennaio 0001 D.C. (E.V.) nel calendario GregorianCalendar (con l'esclusione dei segni di graduazione che sarebbero aggiunti dai secondi intercalari). Un valore di segni di graduazione di 31241376000000000L rappresenta, ad esempio, la data venerdì 1° gennaio dell'anno 100, ore 00.00.00. Un valore DateTime viene sempre espresso nel contesto di un calendario predefinito o esplicito.

NotaNota

Se si opera con un valore di segni di graduazione che si desidera convertire ad altro intervallo di tempo, ad esempio minuti o secondi, è necessario utilizzare TimeSpan.TicksPerDay, TimeSpan.TicksPerHour, TimeSpan.TicksPerMinute, TimeSpan.TicksPerSecondo TimeSpan.TicksPerMillisecond costanti per eseguire la conversione. Ad esempio, per aggiungere il numero di secondi rappresentati da un numero specificato di graduazioni al componente Second di un valore DateTime, è possibile utilizzare l'espressione dateValue.Second + nTicks/Timespan.TicksPerSecond.

Contenuto della sezione:

Creazione di un'istanza di un oggetto DateTime
Valori DateTime e relative rappresentazioni di stringa
Conversione delle stringhe in valori DateTime
Considerazioni sulle versioni
Valori delle strutture DateTime
Operazioni sulle strutture DateTime
Confronto fra gli oggetti DateTime e TimeSpan
Considerazioni sull'interoperabilità COM

Creazione di un'istanza di un oggetto DateTime

È possibile creare un nuovo valore DateTime in uno dei seguenti modi:

  • Chiamando uno degli overload del costruttore DateTime che consentono di specificare determinati elementi del valore di data e ora (ad esempio l'anno, il mese e il giorno o il numero di segni di graduazione). Nell'istruzione seguente viene illustrata una chiamata a uno dei costruttori DateTime per creare una data con un anno, un mese, un giorno, un'ora, un minuto e un secondo specifici.

    
    DateTime date1 = new DateTime(2008, 5, 1, 8, 30, 52);
    
    
    
  • Utilizzando una sintassi specifica del compilatore per la dichiarazione dei valori di data e ora. L'istruzione Visual Basic seguente, ad esempio, consente di inizializzare un nuovo valore DateTime.

    
    Dim date1 As Date = #5/1/2008 8:30:52AM#
    
    
    
  • Assegnando all'oggetto DateTime un valore di data e ora restituito da una proprietà o un metodo. Nell'esempio seguente vengono assegnate la data e l'ora correnti, la data e l'ora UTC (Coordinated Universal Time) correnti e la data corrente a tre nuove variabili DateTime.

    
    DateTime date1 = DateTime.Now;
    DateTime date2 = DateTime.UtcNow;
    DateTime date3 = DateTime.Today;
    
    
    
  • Analizzando la rappresentazione in forma di stringa di un valore di data e ora. I metodi Parse, ParseExact, TryParse e TryParseExact convertono una stringa nel valore di data e ora equivalente. Nell'esempio seguente viene utilizzato il metodo Parse per analizzare una stringa e convertirla in un valore DateTime.

    
    string dateString = "5/1/2008 8:30:52 AM";
    DateTime date1 = DateTime.Parse(dateString, 
                              System.Globalization.CultureInfo.InvariantCulture); 
    
    
    

    Si noti che i metodi TryParse e TryParseExact indicano se una stringa specifica contiene una rappresentazione valida di un valore DateTime oltre a eseguire la conversione.

  • Chiamando il costruttore predefinito implicito della struttura DateTime. Per i dettagli sul costruttore predefinito implicito di un tipo valore, vedere Tipi di valore (Riferimenti per C#). Un equivalente approssimativo, per i compilatori che lo supportano, consiste nella dichiarazione di un valore DateTime senza assegnazione esplicita di una data e un'ora. Nell'esempio seguente viene illustrata una chiamata al costruttore predefinito implicito di DateTime in C# e Visual Basic, oltre a una dichiarazione di variabile DateTime senza assegnazione in Visual Basic.

    
    DateTime dat1 = new DateTime();
    // The following method call displays 1/1/0001 12:00:00 AM.
    Console.WriteLine(dat1.ToString(System.Globalization.CultureInfo.InvariantCulture));
    // The following method call displays True.
    Console.WriteLine(dat1.Equals(DateTime.MinValue));
    
    
    

Valori DateTime e relative rappresentazioni di stringa

Internamente, tutti i valori DateTime sono rappresentati come numero di cicli (il numero di intervalli da 100 nanosecondi) che sono trascorsi dalle ore 12:00:00, mezzanotte, del 1° gennaio 0001. Il valore DateTime effettivo è indipendente dalla modalità in cui viene visualizzato tale valore se visualizzato in un elemento dell'interfaccia utente o in caso di scrittura in un file. L'aspetto di un valore DateTime è il risultato di un'operazione di formattazione, ovvero di conversione del valore nella relativa rappresentazione in forma di stringa.

Poiché l'aspetto dei valori di data e ora dipende da fattori quali le impostazioni di cultura, gli standard internazionali, i requisiti dell'applicazione e le preferenze personali, la struttura DateTime consente una grande flessibilità nella formattazione dei valori di data e ora tramite gli overload del metodo ToString. Il metodo DateTime.ToString() predefinito restituisce la rappresentazione in forma di stringa di un valore di data e ora utilizzando il modello di data breve e ora estesa delle impostazioni di cultura correnti. Nell'esempio seguente viene utilizzato il metodo DateTime.ToString() predefinito per visualizzare la data e l'ora utilizzando il modello di data breve e ora estesa delle impostazioni di cultura en-US, ovvero le impostazioni di cultura correnti del computer in cui è stato eseguito l'esempio.


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString());
// For en-US culture, displays 3/1/2008 7:00:00 AM


Il metodo DateTime.ToString(IFormatProvider) restituisce la rappresentazione in forma di stringa di un valore di data e ora utilizzando il modello di data breve e ora estesa delle impostazioni di cultura specifiche. Nell'esempio seguente viene utilizzato il metodo DateTime.ToString(IFormatProvider) per visualizzare la data e l'ora utilizzando il modello di data breve e ora estesa delle impostazioni di cultura fr-FR.


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 01/03/2008 07:00:00


Il metodo DateTime.ToString(String) restituisce la rappresentazione in forma di stringa della data e dell’ora in un formato definito da un identificatore di formato standard o personalizzato e utilizzando le convenzioni di formattazione delle impostazioni di cultura correnti. Nell'esempio seguente viene utilizzato il metodo DateTime.ToString(String) per visualizzare il modello di data e ora completo delle impostazioni di cultura en-US, ovvero le impostazioni di cultura correnti del computer in cui è stato eseguito l'esempio.


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString("F"));
// Displays Saturday, March 01, 2008 7:00:00 AM


Il metodo DateTime.ToString(String, IFormatProvider) restituisce la rappresentazione in forma di stringa della data e dell’ora in un formato definito da un identificatore di formato specifico e utilizzando le convenzioni di formattazione delle impostazioni di cultura specifiche. Nell'esempio seguente viene utilizzato il metodo DateTime.ToString(String, IFormatProvider) per visualizzare il modello di data e ora completo delle impostazioni di cultura fr-FR.


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString("F", new System.Globalization.CultureInfo("fr-FR")));
// Displays samedi 1 mars 2008 07:00:00


Per ulteriori informazioni sulla formattazione di valori DateTime, vedere Stringhe di formato di data e ora standard e Stringhe di formato di data e ora personalizzate.

Conversione delle stringhe in valori DateTime

La tracciatura consiste nel convertire la rappresentazione di una stringa di data e ora in un valore DateTime. In genere, le stringhe di data e ora presentano due utilizzi differenti nelle applicazioni:

  • Rappresentano una data e un'ora che può assumere varie forme e che riflette le convenzioni delle impostazioni di cultura correnti o di impostazioni di cultura specifiche. Ad esempio, un'applicazione può consentire a un utente le cui impostazioni di cultura correnti sono en-US di introdurre un valore di data come "12/15/2013 " o "15 dicembre 2013" e consentire ad un utente le cui impostazioni di cultura correnti sono en-GB di introdurre un valore di data come "15/12/2013 " o "15 dicembre 2013".

  • Rappresentano una data e ora in un formato predefinito. Ad esempio, un'applicazione può serializzare una data come "20130103 " indipendentemente dalle impostazioni di cultura su cui è in esecuzione l'applicazione, oppure può richiedere che una data venga introdotta nel formato di data breve delle impostazioni di cultura correnti.

È possibile utilizzare il metodo TryParse o Parse per convertire una stringa che potrebbe riflettere uno dei formati di data e ora comuni utilizzati dalle impostazioni di cultura ad un valore DateTime. Di seguito viene illustrato come utilizzare TryParse per convertire le stringhe di data in numerosi formati specifici delle impostazioni di cultura diverse in un valore DateTime. Modifica le impostazioni cultura correnti con l'inglese (Gran Bretagna) e chiama il metodo GetDateTimeFormats() per generare una matrice di stringhe di data e ora. Poi passa ogni elemento della matrice al metodo TryParse. L'output dell'esempio illustra che il metodo di parsing ha potuto convertire correttamente ognuna delle stringhe di data e ora specifiche delle impostazioni di cultura.

È possibile utilizzare i metodi TryParseExact e TryParse per convertire una stringa di data e ora che deve corrispondere ad un formato o a formati specifici su un valore DateTime. Specificare il formato o i formati necessari come parametro al metodo di parsing utilizzando una o più stringhe di formato di data e ora personalizzati o standard. Nell'esempio seguente viene utilizzato il metodo TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) per convertire le stringhe che devono essere in un formato "yyyyMMdd" o in un formato "di HHmmss" su valori DateTime.

I metodi ParseExact e Parse generano un'eccezione se la stringa da convertire in un valore DateTime non può essere analizzata. I metodi TryParseExact e TryParse restituiscono un valore booleano che indica se la conversione ha avuto esito positivo o negativo. Poiché l'operazione di analisi per le stringhe di data e ora, in particolare se le stringhe sono state inserite dagli utenti, tende ad avere un'incidenza di errori elevata e poiché la gestione delle eccezioni è onerosa, è necessario utilizzare I metodi TryParse o TryParseExact negli scenari in cui le prestazioni sono importanti o le conversioni sono soggette a una frequenza elevata di errore.

Per ulteriori informazioni sull'analisi dei valori di data e ora, vedere Analizzare stringhe di data e ora.

Considerazioni sulle versioni

Nelle versioni di .NET Framework precedenti alla 2.0, la struttura DateTime contiene un campo a 64 bit composto da un campo a 2 bit inutilizzato concatenato a un campo Segni di graduazione privato, ovvero un campo a 62 bit senza segno che contiene il numero di segni di graduazione che rappresentano la data e l'ora. Per ottenere il valore del campo Segni di graduazione è possibile utilizzare la proprietà Ticks.

A partire dalla versione 2.0 di .NET Framework, la struttura DateTime contiene un campo a 64 bit composto da un campo Tipo privato concatenato al campo Segni di graduazione. Il campo Tipo è un campo a 2 bit in cui viene indicato se la struttura DateTime rappresenta un'ora locale, un'ora UTC (Coordinated Universal Time) o l'ora in un fuso orario non specificato. Tale campo viene utilizzato per eseguire conversioni dell'ora tra fusi orari, ma non per confronti tra ore o per operazioni aritmetiche. Per ottenere il valore del campo Tipo è possibile utilizzare la proprietà Kind.

NotaNota

In alternativa alla struttura DateTime per lavorare con valori di data e ora in fusi orari particolari è possibile utilizzare la struttura DateTimeOffset. La struttura DateTimeOffset archivia le informazioni su data e ora in un campo DateTime privato, mentre il numero di minuti di differenza tra tale data e ora e l'ora UTC viene archiviato in un campo Int16 privato. Tale accorgimento consente a un valore DateTimeOffset di riflettere l'ora in un particolare fuso orario, mentre un valore DateTime potrà riflettere inequivocabilmente soltanto l'ora UTC e l'ora del fuso orario locale. Per una discussione circa l'utilizzo della struttura DateTime piuttosto che della struttura DateTimeOffset quando si lavora con valori di data e ora, vedere Scelta tra DateTime, DateTimeOffset e TimeZoneInfo.

Valori delle strutture DateTime

Le descrizioni dei valori di ora nel tipo DateTime vengono spesso espresse utilizzando lo standard UTC (Coordinated Universal Time), noto a livello internazionale come ora di Greenwich (GMT, Greenwich Mean Time). Lo standard UTC definisce l'ora misurata rispetto a un punto di riferimento posto a una longitudine di zero gradi. All'ora UTC non è applicabile l'ora legale.

L'ora locale è relativa a un fuso orario specifico. Un fuso orario è associato a una differenza di fuso orario, ovvero allo scostamento del fuso orario dal punto di riferimento dello standard UTC misurato in ore. Inoltre, l'ora locale è eventualmente influenzata dall'ora legale, che aggiunge o sottrae un'ora dalla durata di una giornata. Pertanto, l'ora locale è calcolata aggiungendo la differenza di fuso orario all'ora UTC e, se necessario, applicando il fattore dovuto all'ora legale. La differenza di fuso orario nel punto di riferimento dello standard UTC è zero.

L'ora UTC è ideale per l'esecuzione di calcoli e confronti e per la memorizzazione di date e orari nei file. L'ora locale, invece, risulta essere più adatta nelle interfacce utente delle applicazioni desktop. Le applicazioni che dipendono dal fuso orario, ad esempio molte applicazioni Web, necessitano di lavorare anche con fusi orari diversi.

Se la proprietà Kind di un oggetto DateTime è DateTimeKind.Unspecified, non viene specificato se l'ora rappresentata è l'ora locale, l'ora UTC o un'ora in un fuso orario diverso.

Operazioni sulle strutture DateTime

I calcoli effettuati sulle strutture DateTime, ad esempio mediante i metodi Add o Subtract, non modificano i valori delle strutture. I calcoli di questo tipo, invece, restituiscono una nuova struttura DateTime il cui valore è il risultato del calcolo stesso.

Le operazioni di conversione tra fusi orari, ad esempio tra ora UTC e ora locale, o tra un fuso orario e un altro, prendono in considerazione l'ora legale, al contrario di quanto accade per le operazioni aritmetiche e di confronto.

La struttura DateTime in sé offre un supporto limitato per la conversione da un fuso orario a un altro. È possibile utilizzare il metodo ToLocalTime per convertire l'ora UTC in ora locale, oppure il metodo ToUniversalTime per convertire l'ora locale in ora UTC. In ogni caso, un insieme completo di metodi di conversione dei fusi orari è disponibile nella classe TimeZoneInfo. Tramite questi metodi, è possibile convertire l'ora di un qualsiasi fuso orario nel mondo nell'ora di un fuso orario diverso.

I calcoli e i confronti fra oggetti DateTime sono significativi solo se tali oggetti rappresentano orari del medesimo fuso orario. È possibile utilizzare un oggetto TimeZoneInfo per rappresentare un fuso orario del valore DateTime, benché i due non siano strettamente collegati. Vale a dire, un oggetto DateTime non possiede alcuna proprietà che restituisca un oggetto rappresentante il fuso orario di quel valore di data e ora, se non la proprietà Kind. Per questo motivo, in un'applicazione che dipende dal fuso orario, è necessario basarsi su un meccanismo esterno per determinare il fuso orario nel quale un oggetto DateTime è stato creato. Ad esempio, è possibile utilizzare una struttura che esegue il wrapping sia del valore DateTime che dell'oggetto TimeZoneInfo rappresentante il fuso orario del valore DateTime. Per i dettagli sull'utilizzo del formato UTC nei calcoli e nei confronti con i valori DateTime, vedere Esecuzione di operazioni aritmetiche con date e ore.

Per eseguire le proprie operazioni, i membri della struttura DateTime utilizzano in modo implicito il calendario gregoriano, ad eccezione dei costruttori che specificano un calendario e dei metodi che dispongono di un parametro derivato da un'interfaccia IFormatProvider, quale ad esempio System.Globalization.DateTimeFormatInfo, che specifica implicitamente un calendario.

Nelle operazioni eseguite dai membri del tipo DateTime si prendono in considerazione dettagli quali gli anni bisestili e il numero di giorni in un mese.

Altre due operazioni comuni con i valori DateTime implicano la conversione di un valore di data e ora dalla o alla relativa rappresentazione in stringa. Il processo di conversione del valore DateTime nella relativa rappresentazione di stringa è un'operazione di formattazione; per ulteriori informazioni sulla formattazione, vedere Valori DateTime e loro rappresentazioni. Il processo di conversione della rappresentazione di una stringa di data e ora in un valore DateTime è un'operazione di analisi; per ulteriori informazioni sull'analisi, vedere Conversione delle stringhe in valori DateTime.

Confronto fra gli oggetti DateTime e TimeSpan

I tipi di valore DateTime e TimeSpan differiscono poiché DateTime rappresenta un istante di tempo, mentre TimeSpan rappresenta un intervallo di tempo. Ciò significa, ad esempio, che è possibile sottrarre un'istanza di DateTime da un'altra istanza per ottenere un oggetto TimeSpan rappresentante l'intervallo di tempo compreso fra le due. In alternativa, è possibile aggiungere un oggetto TimeSpan positivo all'oggetto DateTime corrente per ottenere un valore DateTime che rappresenta una data futura.

A un oggetto DateTime è possibile aggiungere o sottrarre un intervallo di tempo. Gli intervalli di tempo possono essere negativi o positivi, possono essere espressi in unità, ad esempio segni di graduazione o secondi, oppure come un oggetto TimeSpan.

Considerazioni sull'interoperabilità COM

Una sequenza di andata e ritorno si ha quando il valore di un oggetto DateTime viene prima trasferito a un'applicazione COM e quindi trasferito nuovamente a un'applicazione gestita. Tuttavia, contrariamente a quanto si possa pensare, ciò non accade se il valore dell'oggetto DateTime specifica soltanto un orario.

Per eseguire una sequenza di andata e ritorno solo sul tempo, ad esempio 3 del pomeriggio, la data e l'ora di fine è il 30 dicembre 1899, C.E alle 3:00 del pomeriggio, anziché Gennaio 1, 0001, C.E. alle 3:00 del pomeriggio. Ciò si verifica perché, se si specifica solo un orario, in .NET Framework e COM viene utilizzata una data predefinita. Tuttavia, il sistema COM assume una data di base del 30 Dicembre, 1899 C.E. sebbene .NET Framework assume una data di base del 1 Gennaio, 0001. C.E.

Quando da .NET Framework a COM viene passato soltanto un orario, viene eseguita un'elaborazione speciale che converte l'ora nel formato utilizzato in COM. Quando da COM a .NET Framework viene passato soltanto un orario, non viene eseguita alcuna elaborazione speciale poiché questa danneggerebbe le date e le ore valide corrispondenti o precedenti al 30 dicembre 1899. Ciò significa inoltre che se la data inizia la sequenza di andata e ritorno da COM, .NET Framework e COM manterranno tale data.

Il comportamento di .NET Framework e COM implica che se nell'applicazione viene eseguita una sequenza di andata e ritorno di un oggetto DateTime in cui viene specificato soltanto un orario, è necessario ricordarsi di modificare o ignorare la data errata contenuta nell'oggetto DateTime finale.

Nell'esempio riportato di seguito viene illustrato il confronto fra valori di oggetti DateTime approssimativamente corrispondenti, accettando un piccolo margine di differenza nella dichiarazione di tali valori come "uguali".


using System;

class DateTimeTester 
{
   static bool RoughlyEquals(DateTime time, DateTime timeWithWindow, int windowInSeconds, int frequencyInSeconds)
   {
      long delta = (long)((TimeSpan)(timeWithWindow - time)).TotalSeconds 
                                                     % frequencyInSeconds;

      delta = delta > windowInSeconds ? frequencyInSeconds - delta : delta;

      return Math.Abs(delta) < windowInSeconds;
	}

	public static void Main() 
	{
      int window = 10;
      int freq = 60 * 60 * 2; // 2 hours;

      DateTime d1 = DateTime.Now;

      DateTime d2 = d1.AddSeconds(2 * window);
      DateTime d3 = d1.AddSeconds(-2 * window);
      DateTime d4 = d1.AddSeconds(window / 2);
      DateTime d5 = d1.AddSeconds(-window / 2);

      DateTime d6 = (d1.AddHours(2)).AddSeconds(2 * window);
      DateTime d7 = (d1.AddHours(2)).AddSeconds(-2 * window);
      DateTime d8 = (d1.AddHours(2)).AddSeconds(window / 2);
      DateTime d9 = (d1.AddHours(2)).AddSeconds(-window / 2);

      Console.WriteLine("d1 ({0}) ~= d1 ({1}): {2}",
                        d1, d1, RoughlyEquals(d1, d1, window, freq));
      Console.WriteLine("d1 ({0}) ~= d2 ({1}): {2}", 
                        d1, d2, RoughlyEquals(d1, d2, window, freq));
      Console.WriteLine("d1 ({0}) ~= d3 ({1}): {2}", 
                        d1, d3, RoughlyEquals(d1, d3, window, freq));
      Console.WriteLine("d1 ({0}) ~= d4 ({1}): {2}", 
                        d1, d4, RoughlyEquals(d1, d4, window, freq));
      Console.WriteLine("d1 ({0}) ~= d5 ({1}): {2}", 
                        d1, d5, RoughlyEquals(d1, d5, window, freq));

      Console.WriteLine("d1 ({0}) ~= d6 ({1}): {2}", 
                        d1, d6, RoughlyEquals(d1, d6, window, freq));
      Console.WriteLine("d1 ({0}) ~= d7 ({1}): {2}", 
                        d1, d7, RoughlyEquals(d1, d7, window, freq));
      Console.WriteLine("d1 ({0}) ~= d8 ({1}): {2}", 
                        d1, d8, RoughlyEquals(d1, d8, window, freq));
      Console.WriteLine("d1 ({0}) ~= d9 ({1}): {2}", 
                        d1, d9, RoughlyEquals(d1, d9, window, freq));
	}
}
// The example displays output similar to the following:
//    d1 (1/28/2010 9:01:26 PM) ~= d1 (1/28/2010 9:01:26 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d2 (1/28/2010 9:01:46 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d3 (1/28/2010 9:01:06 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d4 (1/28/2010 9:01:31 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d5 (1/28/2010 9:01:21 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d6 (1/28/2010 11:01:46 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d7 (1/28/2010 11:01:06 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d8 (1/28/2010 11:01:31 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d9 (1/28/2010 11:01:21 PM): True


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Tutti i membri di questo tipo sono thread-safe. I membri che sembrano modificare lo stato dell'istanza restituiscono in realtà una nuova istanza inizializzata con il nuovo valore. Come con qualsiasi altro tipo, le operazioni di lettura e scrittura su una variabile condivisa che contiene un'istanza di questo tipo devono essere protette da un blocco per garantire che siano thread-safe.

Nota di avvisoAttenzione

L'assegnazione di un'istanza di questo tipo non è thread-safe su tutte le piattaforme hardware perché la rappresentazione binaria di tale istanza potrebbe essere troppo estesa per l'assegnazione in un'unica operazione atomica.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft