Come sappiamo, le web app di Microsoft Azure funzionano all'interno di macchine virtuali Windows Server e sfruttano IIS come web server. Dato che non ci è dato modo di accedere alle macchine virtuali alcune impostazioni non sono a noi accessibili. Tra queste rientrano il fuso orario e l'ora impostati su di essa che spesso, soprattutto in presenza di codice legacy o non scritto correttamente, può costituire un problema.
Quando ospitiamo le nostre web app su Azure, ci accorgiamo sicuramente del fatto che chiamate a DateTime.Now o a DateTimeOffset.Now restituisco la data nel fuso UTC-0, proprio per essere indipendente dalla region in cui effettivamente si trovano fisicamente le macchine. Questo richiede degli interventi a livello di interfaccia affinché gli orari vengano visualizzati in base al fuso orario dell'utente.
Fortunatamente esiste un facile metodo per rendere visibile uno specifico fuso orario all'intera nostra applicazione, risolvendo questa problematica. E' sufficiente recarsi negli application settings tramite il portale ed inserire una speciale chiave WEBSITE_TIME_ZONE con un dei valori supportati, come per esempio W. Europe Standard Time per il fuso orario italiano.

Questo passo è sufficiente per cambiare il fuso orario. Ricordiamo che per una corretta realizzazione di un'app che lavori in modo indipendente, è necessario usare sempre DateTimeOffset, invece di DateTime, così da avere sempre con se l'informazione del fuso orario. In questo modo sul database o in memoria possiamo avere dati con un fuso orario diverso, ma che possiamo sempre formattare nel fuso orario desiderato.
Lista dei possibili fusi orari
https://support.microsoft.com/en-us/kb/973627
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eliminare record doppi in Sql Server
Controllare la telemetria con .NET Aspire
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Loggare le query più lente con Entity Framework
Utilizzare Hybrid Cache in .NET 9
Utilizzare Azure Cosmos DB con i vettori
Migliorare l'organizzazione delle risorse con Azure Policy
Recuperare le subissue e il loro stato di completamento in GitHub
Aggiornare a .NET 9 su Azure App Service
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
.NET Conference Italia 2024
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework