как добавить DateTimeOffset в DateTime в C#?
у меня проблема, у меня есть DateTimeOffset
и DateTime
и я хочу знать, как добавить смещение для даты?
DateTimeOffset, например, +02: 00
5 ответов
документация:http://msdn.microsoft.com/en-us/library/system.datetimeoffset.aspx говорит, что DateTimeOffset уже содержит как DateTime, так и offset.
вероятно, вы хотите использовать TimeSpan вместо DateTimeOffset. TimeSpan могут быть добавлены в DateTimes.
на DateTimeOffset
класс " представляет точку во времени, обычно выражаемую как дата и время суток, относительно координированного универсального времени (UTC).- Он содержит оба а DateTime
значение и смещение, поэтому, если вы хотите добавить смещение в DateTime
, вы хотели бы создать новый DateTimeOffset
используя конструктор, а затем используйте один из AddX()
функции DateTimeOffset
для изменения значения смещения.
var offset = new DateTimeOffset(DateTime.Now);
посмотреть этот блог для примеров о том, как чтобы преобразовать из одного в другое, выполните арифметику и т. д.
к сожалению, DateTimeOffset не то, что нормальный человек понял бы из его имени. Проще говоря, это DateTime со смещением (возможно, не совсем так, но достаточно близко). ИМО это худший названный класс в целом .Сеть. Имя пришло прямо из SQL Server afaik. Вы можете обратиться к этому для деталей:
http://www.danrigsby.com/blog/index.php/2008/08/23/datetime-vs-datetimeoffset-in-net/
вы можете достичь этого, передавая соответствующие значения в AddMinutes
или AddHours
вашего DateTime
экземпляр
startDate.AddHours(2)
увеличит текущий объект DateTime на 2 часа (для декремента это будет -2)
или вы можете intialize объект Timespan как
TimeSpan ts = new TimeSpan(2,0,0);
теперь вы можете добавить это в свой объект DateTime
startDate= startDate+ ts;
предполагая, что вам нужно добавить +2: 00 к DateTime
. Вы можете сделать,
DateTime dateTime = DateTime.Now.AddHours(2.0);