Як би я перетворив попередньо існуючу дату в UTC, не змінюючи фактичний час.
Приклад:
DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
Як би я перетворив попередньо існуючу дату в UTC, не змінюючи фактичний час.
Приклад:
DateTime dateTime = GetSomeDateTime(); // dateTime here is 3pm
dateTime.ToUtcDateTime() // datetime should still be 3pm
Відповіді:
Використовуйте DateTime.SpecifyKind
статичний метод.
Створює новий об'єкт 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 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()
Ви побачите, що отримаєте різні результати.
PST
цінність?