Datetime System.TimeZoneInfo.IsDaylightSavingTime在节点时间中的等效值是多少?

Datetime System.TimeZoneInfo.IsDaylightSavingTime在节点时间中的等效值是多少?,datetime,timezone,dst,nodatime,Datetime,Timezone,Dst,Nodatime,System.TimeZoneInfo有一个名为的方法,该方法接受DateTime对象,如果指定的DateTime位于该时区的DST中,则返回true。是否有一个等效的函数或其他方法来实现相同的结果?您可以从区域间中获得此结果。下面是一个有帮助的扩展方法 public static bool IsDaylightSavingsTime(此ZonedDateTime ZonedDateTime) { var instant=zonedDateTime.ToInstant(); var zoneIn

System.TimeZoneInfo有一个名为的方法,该方法接受DateTime对象,如果指定的DateTime位于该时区的DST中,则返回true。是否有一个等效的函数或其他方法来实现相同的结果?

您可以从
区域间
中获得此结果。下面是一个有帮助的扩展方法

public static bool IsDaylightSavingsTime(此ZonedDateTime ZonedDateTime)
{
var instant=zonedDateTime.ToInstant();
var zoneInterval=ZoneDateTime.Zone.GetZoneInterval(即时);
return zoneInterval.Savings!=Offset.Zero;
}
现在您可以执行以下操作:

zdt.IsDaylightSavingsTime();
如果没有
ZonedDateTime
,可以从
DateTimeZone
加上
Instant
LocalDateTime
获得。或者,您可以使用此扩展方法将其作为参数


更新:此功能现在包含在Noda Time v1.3及更高版本中,因此您不再需要自己编写扩展方法。

我现在添加了一个功能请求,直接将其包含在ZonedDateTime中: