You can get this from a ZoneInterval
. Here is an extension method that will help.
public static bool IsDaylightSavingsTime(this ZonedDateTime zonedDateTime)
{
var instant = zonedDateTime.ToInstant();
var zoneInterval = zonedDateTime.Zone.GetZoneInterval(instant);
return zoneInterval.Savings != Offset.Zero;
}
Now you can do:
zdt.IsDaylightSavingsTime();
If you don't have a ZonedDateTime
, you can get one from a DateTimeZone
plus either an Instant
or a LocalDateTime
. Or you can massage this extension method to take those as parameters.
Update: This function is now included in Noda Time v1.3 and higher, so you no longer have to write the extension method yourself.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…