Подтвердить что ты не робот

Как добавить DateTimeOffset в DateTime в С#?

У меня проблема, у меня есть DateTimeOffset и DateTime, и я хочу знать, как добавить Offset в DateTime?

DateTimeOffset, например. +02: 00

4b9b3361

Ответ 1

Документация: http://msdn.microsoft.com/en-us/library/system.datetimeoffset.aspx говорит, что DateTimeOffset уже содержит DateTime и смещение.

Вероятно, вы захотите использовать TimeSpan вместо DateTimeOffset. TimeSpan можно добавить к DateTimes.

Ответ 2

DateTimeOffset class "представляет собой момент времени, обычно выражаемый как дата и время суток, относительно скоординированного универсального времени ( УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ)." Он содержит как значение DateTime, так и смещение, поэтому, если вы хотите добавить смещение в DateTime, вы хотите создать новый DateTimeOffset с помощью конструктора, а затем использовать одну из функций AddX() для DateTimeOffset, чтобы изменить значение смещения.

var offset = new DateTimeOffset(DateTime.Now);

См. это сообщение в блоге для примеров того, как конвертировать из одного в другое, выполнять арифметику и т.д.

Ответ 3

К сожалению, DateTimeOffset не то, что нормальный человек мог бы понять из его имени. Проще говоря, DateTime WITH offset (возможно, не только это, но достаточно близко). Имо это худший названный класс во всем .NET. Имя появилось прямо из SQL Server afaik. Вы можете обратиться к этому для получения дополнительной информации:

http://www.danrigsby.com/blog/index.php/2008/08/23/datetime-vs-datetimeoffset-in-net/

Ответ 4

Вы можете достичь этого, передав соответствующие значения AddMinutes или AddHours вашего экземпляра DateTime

startDate.AddHours(2) увеличит текущий объект DateTime на 2 часа (для уменьшения будет -2)

Или вы можете настроить объект Timespan, например

TimeSpan ts = new TimeSpan(2,0,0);

Теперь вы можете добавить это в свой объект DateTime

startDate= startDate+ ts;

Ответ 5

Предполагая, что вам нужно добавить +2: 00 в DateTime. Вы можете сделать,

DateTime dateTime = DateTime.Now.AddHours(2.0);