web-dev-qa-db-fra.com

Heure Date C # à l'heure UTC sans changer l'heure

Comment convertir une date/heure préexistante en heure UTC sans modifier l'heure réelle.

Exemple:

DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
107
Luke Belbina
6/1/2011 4:08:40 PM Local
6/1/2011 4:08:40 PM Utc

de

DateTime dt = DateTime.Now;            
Console.WriteLine("{0} {1}", dt, dt.Kind);
DateTime ut = DateTime.SpecifyKind(dt, DateTimeKind.Utc);
Console.WriteLine("{0} {1}", ut, ut.Kind);
182
tofutim

Utilisez le DateTime.SpecifyKind méthode statique.

Crée un nouvel objet DateTime avec le même nombre de ticks que le DateTime spécifié, mais désigné comme étant l'heure locale, le temps universel coordonné (UTC) ou aucun des deux, comme indiqué par la valeur DateTimeKind spécifiée.

Exemple:

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
43
user166390

Vous pouvez utiliser le constructeur surchargé de DateTime:

DateTime utcDateTime = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second, DateTimeKind.Utc);
9
InBetween