C # DateTime thành UTC Time mà không thay đổi thời gian


124

Làm cách nào để chuyển đổi ngày giờ hiện có thành giờ UTC mà không thay đổi thời gian thực.

Thí dụ:

DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm

Bạn đang ở PST ? Làm thế nào để bạn nhận được PSTgiá trị?
Kiquenet

Câu trả lời:


207
6/1/2011 4:08:40 PM Local
6/1/2011 4:08:40 PM Utc

từ

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

50

Sử dụng DateTime.SpecifyKindphương pháp tĩnh.

Tạo một đối tượng DateTime mới có cùng số lượng tick với DateTime được chỉ định, nhưng được chỉ định là giờ địa phương, Giờ phối hợp quốc tế (UTC) hoặc không, như được chỉ định bởi giá trị DateTimeKind đã chỉ định.

Thí dụ:

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

18

Bạn có thể sử dụng hàm tạo được nạp chồng của DateTime:

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

0

Bạn cũng có thể làm theo cách này:

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

Điều này có thể không hoạt động như mong đợi. Hãy thử ... new DateTime(dateTime.Year, dateTime.Month, dateTime.dateTimeay, dateTime.Hour, dateTime.Minute, dateTime.Second).ToUniversalTime().ToString() vs DateTime.SpecifyKind(dateTime, DateTimeKind.Utc).ToString() Bạn sẽ thấy bạn nhận được kết quả khác nhau.
Homer

-7

Sử dụng DateTime.ToUniversalTimephương pháp.


3
điều đó thay đổi ngày Giờ thành 11 giờ tối (tôi đang ở PST)
Luke Belbina
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.