Como eu converteria uma data e hora pré-existentes para a hora UTC sem alterar a hora real.
Exemplo:
DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
Como eu converteria uma data e hora pré-existentes para a hora UTC sem alterar a hora real.
Exemplo:
DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
Respostas:
Use o DateTime.SpecifyKind
método estático.
Cria um novo objeto DateTime que possui o mesmo número de ticks que o DateTime especificado, mas é designado como hora local, UTC (Horário Universal Coordenado) ou nenhum, conforme indicado pelo valor DateTimeKind especificado.
Exemplo:
DateTime dateTime = DateTime.Now;
DateTime other = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
Console.WriteLine(dateTime + " " + dateTime.Kind); // 6/1/2011 4:14:54 PM Local
Console.WriteLine(other + " " + other.Kind); // 6/1/2011 4:14:54 PM Utc
Você também pode fazer o seguinte:
DateTime utcDateTime = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime();
new DateTime(dateTime.Year, dateTime.Month, dateTime.dateTimeay, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime().ToString()
vs DateTime.SpecifyKind(dateTime, DateTimeKind.Utc).ToString()
Você verá resultados diferentes.
Use o DateTime.ToUniversalTime
método
PST
valor?