我有一个问题,我有一个DateTimeOffset
和DateTime
,我想知道如何将偏移添加到DateTime?如何将DateTimeOffset添加到C#中的DateTime?
DateTimeOffset例如是+02:00
我有一个问题,我有一个DateTimeOffset
和DateTime
,我想知道如何将偏移添加到DateTime?如何将DateTimeOffset添加到C#中的DateTime?
DateTimeOffset例如是+02:00
文档:http://msdn.microsoft.com/en-us/library/system.datetimeoffset.aspx 说的DateTimeOffset已经同时包含DateTime和偏移。
您可能想要使用TimeSpan而不是DateTimeOffset。 TimeSpan可以添加到DateTimes中。
您可以通过相关的值传递给AddMinutes
或您DateTime
实例的AddHours
实现它
startDate.AddHours(2)
将由2小时(增加当前DateTime对象递减这将是-2)
或者你可以intialize一个时间跨度对象像
TimeSpan ts = new TimeSpan(2,0,0);
现在你可以添加到您的DateTime对象
startDate= startDate+ ts;
假设您需要将+2:00添加到DateTime
。你可以这样做,
DateTime dateTime = DateTime.Now.AddHours(2.0);
的DateTimeOffset
class“代表一个时间点,通常表示为一个日期和时间,相对于协调世界时(UTC)。”它包含一个DateTime
值和一个偏移量,所以如果要将偏移量添加到DateTime
,则需要使用构造函数创建一个新的DateTimeOffset
,然后使用AddX()
函数之一来修改偏移值。
var offset = new DateTimeOffset(DateTime.Now);
关于如何从一个转换到另一个,执行算术例子见this blog post等
可悲的是,的DateTimeOffset是不是一个正常的人会从它的名字理解。简单地说,它是一个带有偏移量的日期时间(可能不仅仅是这个;但足够接近)。 Imo这是整个.NET中最糟糕的命名类。这个名字直接来自SQL Server afaik。您可以参考本详细信息:
http://www.danrigsby.com/blog/index.php/2008/08/23/datetime-vs-datetimeoffset-in-net/
好吧,我意识到,我downvoted它错误。你可以编辑它,以便我可以修改我的投票吗? fyi:我从系统最小日期减去一个日期时遇到了问题,这个日期不会在这里发生。 – 2017-08-15 18:20:41