我有一个问题,我有一个 DateTimeOffset
和一个 DateTime
,我想知道如何将时区偏移添加到日期时间中?
DateTimeOffset
例如为 +02:00
文档:http://msdn.microsoft.com/en-us/library/system.datetimeoffset.aspx说明DateTimeOffset已经包含了日期时间和偏移量。
您可能想要使用TimeSpan而不是DateTimeOffset。 TimeSpan可以添加到DateTime中。
DateTime
中添加+2:00。您可以这样做,DateTime dateTime = DateTime.Now.AddHours(2.0);
DateTimeOffset
类表示相对于协调世界时(UTC)的日期和时间,它包含了一个DateTime
值和一个偏移量。如果您想将偏移量添加到DateTime
中,您需要使用构造函数创建一个新的DateTimeOffset
,然后使用DateTimeOffset
的一个AddX()
函数来修改偏移值。
var offset = new DateTimeOffset(DateTime.Now);
请参考此博客文章,了解如何将一种类型转换为另一种类型、执行算术运算等内容。
您可以通过向 DateTime
实例的 AddMinutes
或 AddHours
传递相关值来实现它。
startDate.AddHours(2)
将把当前的 DateTime 对象增加 2 小时(要减少它,应该是 -2)
或者您可以初始化一个 Timespan 对象,例如:
TimeSpan ts = new TimeSpan(2,0,0);
现在,您可以将其添加到您的 DateTime 对象中。
startDate= startDate+ ts;
在编程中,实现一个没有偏移量的时间带有偏移量(例如+02:00)的方法是假设时区为04:00,并且utc是一个初始化为GMT的DateTimeOffset结构。
var timeZone = TimeZone.FromSeconds(14400)
var localTime= utc.ToOffset(timeZone)