C#DateTimeOffset与LocalDate的比较

C#DateTimeOffset与LocalDate的比较,c#,.net,c#-4.0,C#,.net,C# 4.0,我正在使用一个Microsoft API,它返回DateTimeOffset。该属性具有以下文档-此值是根据本地测量的当前UTC时间计算的。 我想将这一次与承载我的应用程序的本地服务器进行比较。(因此DateTimeOffset由Microsoft API返回,我要比较的位置在我的服务器上。这两个可以有不同的时区) 检查DateTimeOffset时,Date&UTC属性具有相同的日期和时间,并且Kind属性未指定 我目前正在使用DateTimeOffset

我正在使用一个Microsoft API,它返回
DateTimeOffset
。该属性具有以下文档-此值是根据本地测量的当前UTC时间计算的。

我想将这一次与承载我的应用程序的本地服务器进行比较。(因此DateTimeOffset由Microsoft API返回,我要比较的位置在我的服务器上。这两个可以有不同的时区)

检查
DateTimeOffset
时,Date&UTC属性具有相同的日期和时间,并且
Kind
属性未指定


我目前正在使用
DateTimeOffset
检查条件。我做得对吗?

您应该使用
dateTimeOffset.LocalDateTime


.LocalDateTime
方法将
DateTimeOffset
转换为本地时区(使用
DateTimeKind.local
),因此您可以安全地与本地
DateTime
进行比较。您应该使用
DateTimeOffset.LocalDateTime


.LocalDateTime
方法将
DateTimeOffset
转换为您的本地时区(使用
DateTimeKind.local
),因此您可以安全地与您的本地
DateTime
进行比较。您可以使用下面的代码获得以分钟为单位的偏移时差

// Get the GMT time difference offset (This is your local time offset difference)
var timeOffsetinMiniut = DateTimeOffset.Now.Offset.TotalMinutes;
现在,您可以在本地时间中使用“添加此偏移”使其成为UTC时间

var myNewDateTime = System.DateTime.Now.AddMinutes(timeOffsetinMiniut)
现在,您可以比较utc时间和新服务器时间

myNewDateTime  < DateTime.UtcNow
myNewDateTime
希望这对你有帮助


谢谢

您可以使用以下代码获得以分钟为单位的偏移时差

// Get the GMT time difference offset (This is your local time offset difference)
var timeOffsetinMiniut = DateTimeOffset.Now.Offset.TotalMinutes;
现在,您可以在本地时间中使用“添加此偏移”使其成为UTC时间

var myNewDateTime = System.DateTime.Now.AddMinutes(timeOffsetinMiniut)
现在,您可以比较utc时间和新服务器时间

myNewDateTime  < DateTime.UtcNow
myNewDateTime
希望这对你有帮助


谢谢

这似乎是合理的,我会尝试一下,检查一下舞台,看看所有的东西都会像预期的那样标记这个答案!该条件不应该是
DateTimeOffset.ToLocalTime().DateTime
?这似乎是合理的,我会尝试一下,检查staging并查看所有标记此答案的内容!该条件不应该是
DateTimeOffset.ToLocalTime().DateTime
?我怀疑这是否有效,因为您在上述解释中没有使用
DateTimeOffset
。在上面的上下文中,
DateTimeOffset
是一个具有从Microsoft API返回的值的变量。我怀疑这是否有效,因为您在上面的解释中没有使用过
DateTimeOffset
。在上面的上下文中,
DateTimeOffset
是一个变量,它具有从Microsoft API返回的值。