Date, ore e fusi orari
Oltre alla struttura di base DateTime, .NET fornisce le classi seguenti che supportano l'uso dei fusi orari:
-
Usare questa classe con il fuso orario locale del sistema e il fuso UTC (Coordinated Universal Time). La funzionalità della TimeZone classe è ampiamente sostituita dalla TimeZoneInfo classe.
-
Utilizzare questa classe per utilizzare qualsiasi fuso orario predefinito in un sistema, per creare nuovi fusi orari e per convertire facilmente date e ore da un fuso orario a un altro. Per i nuovi progetti di sviluppo usare la classe TimeZoneInfo anziché la classe TimeZone.
-
Usare questa struttura con le date e le ore il cui offset (o differenza) rispetto all'ora UTC è noto. La struttura DateTimeOffset combina un valore di data e ora con l'offset di quell'ora rispetto all'ora UTC. Per via della relazione con l'ora UTC, un singolo valore di data e ora identifica un momento specifico senza ambiguità. Un valore DateTimeOffset risulta pertanto più portabile da un computer a un altro rispetto a un valore DateTime.
A partire da .NET 6, sono disponibili i tipi seguenti:
-
Usare questa struttura quando si usa un valore che rappresenta solo una data. La data rappresenta l'intero giorno, dall'inizio del giorno alla fine.
DateOnly
ha un intervallo di0001-01-01
tramite9999-12-31
. E questo tipo rappresenta la combinazione mese, giorno e anno senza un'ora specifica. Se in precedenza è stato usato unDateTime
tipo nel codice per rappresentare una data che ha ignorato l'ora, usare questo tipo nel suo posto. -
Usare questa struttura per rappresentare un'ora senza data. L'ora rappresenta le ore, i minuti e i secondi di un giorno non specifico.
TimeOnly
ha un intervallo di00:00:00.0000000
da a23:59:59.9999999
. Questo tipo può essere usato per sostituireDateTime
eTimeSpan
tipi nel codice quando questi tipi sono stati usati per rappresentare un'ora.
La sezione successiva fornisce le informazioni necessarie per lavorare con i fusi orari e per creare applicazioni con riconoscimento del fuso orario che possono convertire date e ore da un fuso orario a un altro.
Contenuto della sezione
Panoramica sui fusi orari
Illustra concetti, terminologia e problemi relativi alla creazione di applicazioni che dipendono dal fuso orario.
Scelta tra DateTime, DateTimeOffset, TimeSpan e TimeZoneInfo
Viene illustrato quando usare i DateTimetipi , DateTimeOffsete TimeZoneInfo quando si usano i dati di data e ora.
Ricerca dei fusi orari definiti in un sistema locale
Descrive come enumerare i fusi orari che si trovano in un sistema locale.
Procedura: Enumerare i fusi orari presenti in un computer
Include esempi che enumerano i fusi orari definiti nel Registro di sistema di un computer e che consentono agli utenti di selezionare un fuso orario predefinito da un elenco.
Procedura: Accedere agli oggetti UTC e fuso orario locali predefiniti
Descrive come accedere all'ora UTC e al fuso orario locale.
Procedura: Creare un'istanza di un oggetto TimeZoneInfo
Viene descritto come creare un'istanza di un TimeZoneInfo oggetto dal Registro di sistema locale.
Creazione di un'istanza di un oggetto DateTimeOffset
Vengono illustrati i modi in cui è possibile creare un'istanza di un DateTimeOffset oggetto e i modi in cui un DateTime valore può essere convertito in un DateTimeOffset valore.
Procedura: Creare fusi orari senza regole di regolazione
Descrive come creare un fuso orario personalizzato che non supporta la transizione da e verso l'ora legale.
Procedura: Creare fusi orari con regole di regolazione
Descrive come creare un fuso orario personalizzato che supporta una o più transizioni da e verso l'ora legale.
Salvataggio e ripristino dei fusi orari
TimeZoneInfo Descrive il supporto per la serializzazione e la deserializzazione dei dati del fuso orario e illustra alcuni degli scenari in cui è possibile usare queste funzionalità.
Procedura: Salvare i fusi orari in una risorsa incorporata
Descrive come creare un fuso orario personalizzato e salvare le informazioni in un file di risorse.
Procedura: Ripristinare i fusi orari da una risorsa incorporata
Descrive come creare un'istanza di fusi orari personalizzati che sono stati salvati in un file di risorsa incorporata.
Esecuzione di operazioni aritmetiche con date e orari
Illustra i problemi relativi all'aggiunta, alla sottrazione e al confronto DateTime dei DateTimeOffset valori.
Procedura: Usare fusi orari nell'aritmetica di data e ora
Illustra come eseguire operazioni aritmetiche di data e ora che riflettano le regole di adeguamento di un fuso orario.
Conversione tra DateTime e DateTimeOffset
Viene descritto come convertire tra DateTime e DateTimeOffset valori.
Conversione dei tempi tra fusi orari
Descrive come eseguire la conversione di ore tra un fuso orario e un altro.
Procedura: Risolvere i tempi ambigui
Descrive come risolvere un orario ambiguo eseguendone il mapping all'ora solare del fuso orario.
Procedura: Consentire agli utenti di risolvere i tempi ambigui
Descrive come consentire agli utenti di determinare il mapping tra un'ora locale ambigua e l'ora UTC.