ash*_*ash 8 timezone datetime dst nodatime
System.TimeZoneInfo有一个名为IsDaylightSavingTime的方法,该方法接受DateTime对象,如果指定的日期时间落在该时区的DST中,则返回true.在NodaTime中是否有相同的功能或其他方式来实现相同的结果?
你可以从一个ZoneInterval.这是一个有用的扩展方法.
public static bool IsDaylightSavingsTime(this ZonedDateTime zonedDateTime)
{
var instant = zonedDateTime.ToInstant();
var zoneInterval = zonedDateTime.Zone.GetZoneInterval(instant);
return zoneInterval.Savings != Offset.Zero;
}
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做:
zdt.IsDaylightSavingsTime();
Run Code Online (Sandbox Code Playgroud)
如果你没有ZonedDateTime,你可以从一个或一个DateTimeZone加号 得到一个.或者您可以按下此扩展方法将其作为参数.InstantLocalDateTime
更新: 此功能现在包含在Noda Time v1.3及更高版本中,因此您不必再自己编写扩展方法.