¿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.SpecifyKind
mé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.ToUniversalTime
método.
PST
valor?