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
Routing statico e PreRendering in una Blazor Web App
Eseguire attività pianificate con Azure Container Jobs
.NET Conference Italia 2023
Eseguire una query su SQL Azure tramite un workflow di GitHub
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Sfruttare al massimo i topic space di Event Grid MQTT
Creare form tipizzati con Angular
Utilizzare un service principal per accedere a Azure Container Registry
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Come migrare da una form non tipizzata a una form tipizzata in Angular
Utilizzare i primary constructor di C# per inizializzare le proprietà
Evitare la command injection in un workflow di GitHub
I più letti di oggi
- Cambiare la chiave di partizionamento di Azure Cosmos DB
- ASP.NET 2.0 per tutti
- Definire stili a livello di libreria in Angular
- Utilizzare il trigger SQL con le Azure Function
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- .NET Conference Italia 2023 - Milano e Online
- Come EF 8 ha ottimizzato le query che usano il metodo Contains
- Ottimizzazione dei block template in Angular 17