Come posso determinare se una determinata data è in ora legale per un determinato fuso orario in .NET 2.0?

StackOverflow https://stackoverflow.com/questions/44795

Domanda

Sono su .NET 2.0, in esecuzione con attendibilità media (quindi Informazioni sul fuso orario e del Registro non sono ammesse opzioni).Chiedo all'utente due date e un fuso orario e mi piacerebbe davvero poter determinare automaticamente se è necessario regolare il fuso orario per l'ora legale.

Questo probabilmente non è nemmeno uno scenario valido a meno che non ne abbia alcuni molto supporto robusto, a la Informazioni sul fuso orario, in primo luogo per distinguere tra tutte le diverse varietà di fusi orari.

È stato utile?

Soluzione

In .NET 2.0 devi codificarlo tu stesso.Si tratta di ricercare le leggi sull'ora legale in varie regioni e di integrarle nelle proprie strutture dati.Il problema è in qualche modo semplificato se ti interessa solo un sottoinsieme di fusi orari, ad esempio solo negli Stati Uniti, ma se hai bisogno di tutti i fusi orari globali, hai molto lavoro da fare, e quindi il codice deve essere aggiornato ogni pochi anni quando le leggi cambiano.Anche i nuovi oggetti del fuso orario nell'ultima versione di .NET richiederanno aggiornamenti di Windows per mantenerli corretti man mano che le leggi cambiano.

Aspetto Qui, Qui, E Qui per maggiori informazioni.

Altri suggerimenti

IL Banca dati TZ è un database di dominio pubblico delle regole del fuso orario molto ben mantenuto.Esiste anche un formato compilato per i dati forniti e sono disponibili molte librerie per leggere i dati compilati, come questa: ZoneInfo (database tz/database Olson) API .NET

Eccellente libreria di fusi orari qui: TZ4Net

Bene, da allora TimeZoneInfo è escluso, probabilmente non troverai una soluzione nel framework stesso (ma non citarmi su questo).

In tal caso, hai considerato di riflettere il TimeZoneInfo classe e usando quello che trovi lì?

@Domenico, ho preso in considerazione, ma preferirei rimanere legale, e sono abbastanza sicuro che le informazioni dovrebbero comunque essere incorporate nel framework o prelevate dal registro in qualche modo subdolo che non richiede autorizzazioni.. .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top