如何在C#中将DateTimeOffset添加到DateTime?

16

我有一个问题,我有一个 DateTimeOffset 和一个 DateTime,我想知道如何将时区偏移添加到日期时间中?

DateTimeOffset 例如为 +02:00

6个回答

7

6

4
假设您需要在一个DateTime中添加+2:00。您可以这样做,
DateTime dateTime = DateTime.Now.AddHours(2.0);

好的,我意识到我错误地给它投了反对票。你能编辑一下让我可以修改我的投票吗?顺便说一下:我在从系统最小日期中减去一个日期时遇到了问题,但这里不会发生。 - Luiz Henrique Martins Lins Rol

4

DateTimeOffset表示相对于协调世界时(UTC)的日期和时间,它包含了一个DateTime值和一个偏移量。如果您想将偏移量添加到DateTime中,您需要使用构造函数创建一个新的DateTimeOffset,然后使用DateTimeOffset的一个AddX()函数来修改偏移值。

var offset = new DateTimeOffset(DateTime.Now);

请参考此博客文章,了解如何将一种类型转换为另一种类型、执行算术运算等内容。


0

您可以通过向 DateTime 实例的 AddMinutesAddHours 传递相关值来实现它。

startDate.AddHours(2) 将把当前的 DateTime 对象增加 2 小时(要减少它,应该是 -2

或者您可以初始化一个 Timespan 对象,例如:

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

现在,您可以将其添加到您的 DateTime 对象中。

startDate= startDate+ ts;

0

在编程中,实现一个没有偏移量的时间带有偏移量(例如+02:00)的方法是假设时区为04:00,并且utc是一个初始化为GMT的DateTimeOffset结构。

var timeZone = TimeZone.FromSeconds(14400)
var localTime= utc.ToOffset(timeZone)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接