C#date时间UTC时间而不改变时间

如何将预先存在的date时间转换为UTC时间而不改变实际时间。

例:

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

 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); 

使用DateTime.SpecifyKind静态方法。

创build一个新的DateTime对象,该对象与指定的DateTime具有相同的刻度数,但是被指定为本地时间,协调世界时(UTC)或不指定的DateTimeKind值。

例:

 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 

快乐的编码

您可以使用DateTime的重载构造函数:

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

使用DateTime.ToUniversalTime方法。