Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

Convertire un orario da UTC a ora locale

Quest'oggi avevo la necessità di convertire un orario in formato UTC, prelevato da un database, nell'orario locale. Il tipo DateTime mette a disposizione un metodo, ToLocalTime, che sembra perfetto per questo scopo. Tuttavia, il suo utilizzo "diretto" non porta il risultato sperato.

Il motivo è semplice: se leggo un campo datetime da un database e lo salvo in una variabile DateTime, .NET suppone che tale orario sia espresso nel formato locale, quindi se su tale variabile invoco il metodo ToLocalTime, ottengo di nuovo l'orario originale.

Per ottenere il risultato voluto, è necessario utilizzare un'istruzione come la seguente:

var localDatetime = new DateTime(utcDateTimeFromDB.Ticks, DateTimeKind.Utc).ToLocalTime();

Con essa, creiamo un nuovo oggetto DateTime, ma, tramite il parametro DateTimeKind.Utc, indichiamo che l'orario è in formato UTC. Così facendo, il metodo ToLocalTime è in grado di applicare il fuso orario e l'eventuale ora legale, per ottenere l'orario locale corretto.

Print | posted on Tuesday, January 3, 2012 8:38 PM | Filed Under [ C# VB .NET ASP .NET SQL Server ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET