¿Cómo convertiría una fecha y hora preexistente a la hora UTC sin cambiar la hora real?
Ejemplo:
DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
¿Cómo convertiría una fecha y hora preexistente a la hora UTC sin cambiar la hora real?
Ejemplo:
DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
Respuestas:
Usa el DateTime.SpecifyKindmétodo estático.
Crea un nuevo objeto DateTime que tiene el mismo número de ticks que el DateTime especificado, pero se designa como hora local, Hora universal coordinada (UTC) o ninguna de las dos, según lo indicado por el valor DateTimeKind especificado.
Ejemplo:
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
También puedes hacerlo de esta manera:
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() Verás que obtienes resultados diferentes.
Usa el DateTime.ToUniversalTimemétodo.
PSTvalor?