Class Resolvers
Commonly-used implementations of the delegates used in resolving a LocalDateTime to a
ZonedDateTime, and a method to combine two "partial" resolvers into a full one.
Since 1.0.x
Availability net45, netstandard1.3
Inheritance
Object
Resolvers
Inherited Members
Object.ToString()
Object.Equals(Object)
Object.Equals(Object, Object)
Object.ReferenceEquals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Namespace: NodaTime.TimeZones
Assembly: NodaTime.dll
Syntax
public static class Resolvers
Remarks
This class contains predefined implementations of ZoneLocalMappingResolver,
AmbiguousTimeResolver, and SkippedTimeResolver, along with
CreateMappingResolver(AmbiguousTimeResolver, SkippedTimeResolver), which produces a ZoneLocalMappingResolver
from instances of the
other two.
Properties
LenientResolver
A ZoneLocalMappingResolver which never throws an exception due to ambiguity or skipped time.
Since 1.0.x
Availability net45, netstandard1.3
Declaration
public static ZoneLocalMappingResolver LenientResolver { get; }
Property Value
Type | Description |
---|---|
ZoneLocalMappingResolver | A ZoneLocalMappingResolver which never throws an exception due to ambiguity or skipped time. (The value returned is never null.) |
Remarks
Ambiguity is handled by returning the earlier occurrence, and skipped times are shifted forward by the duration
of the gap. This resolver combines ReturnEarlier and ReturnForwardShifted.
Note: The behavior of this resolver was changed in version 2.0 to fit the most commonly seen real-world usage pattern. Previous versions combined the ReturnLater and ReturnStartOfIntervalAfter resolvers, which can still be used separately if desired.
See Also
ReturnEarlier
An AmbiguousTimeResolver which returns the earlier of the two matching times.
Since 1.0.x
Availability net45, netstandard1.3
Declaration
public static AmbiguousTimeResolver ReturnEarlier { get; }
Property Value
Type | Description |
---|---|
AmbiguousTimeResolver | An AmbiguousTimeResolver which returns the earlier of the two matching times. (The value returned is never null.) |
ReturnEndOfIntervalBefore
A SkippedTimeResolver which returns the final tick of the time zone interval
before the "gap".
Since 1.0.x
Availability net45, netstandard1.3
Declaration
public static SkippedTimeResolver ReturnEndOfIntervalBefore { get; }
Property Value
Type | Description |
---|---|
SkippedTimeResolver | A SkippedTimeResolver which returns the final tick of the time zone interval before the "gap". (The value returned is never null.) |
ReturnForwardShifted
A SkippedTimeResolver which shifts values in the "gap" forward by the duration
of the gap (which is usually 1 hour). This corresponds to the instant that would have occured,
had there not been a transition.
Since 2.0.x
Availability net45, netstandard1.3
Declaration
public static SkippedTimeResolver ReturnForwardShifted { get; }
Property Value
Type | Description |
---|---|
SkippedTimeResolver | A SkippedTimeResolver which shifts values in the "gap" forward by the duration of the gap (which is usually 1 hour). (The value returned is never null.) |
ReturnLater
An AmbiguousTimeResolver which returns the later of the two matching times.
Since 1.0.x
Availability net45, netstandard1.3
Declaration
public static AmbiguousTimeResolver ReturnLater { get; }
Property Value
Type | Description |
---|---|
AmbiguousTimeResolver | An AmbiguousTimeResolver which returns the later of the two matching times. (The value returned is never null.) |
ReturnStartOfIntervalAfter
A SkippedTimeResolver which returns the first tick of the time zone interval
after the "gap".
Since 1.0.x
Availability net45, netstandard1.3
Declaration
public static SkippedTimeResolver ReturnStartOfIntervalAfter { get; }
Property Value
Type | Description |
---|---|
SkippedTimeResolver | A SkippedTimeResolver which returns the first tick of the time zone interval after the "gap". (The value returned is never null.) |
StrictResolver
A ZoneLocalMappingResolver which only ever succeeds in the (usual) case where the result
of the mapping is unambiguous.
Since 1.0.x
Availability net45, netstandard1.3
Declaration
public static ZoneLocalMappingResolver StrictResolver { get; }
Property Value
Type | Description |
---|---|
ZoneLocalMappingResolver | A ZoneLocalMappingResolver which only ever succeeds in the (usual) case where the result of the mapping is unambiguous. (The value returned is never null.) |
Remarks
If the mapping is ambiguous or skipped, this throws SkippedTimeException or
AmbiguousTimeException, as appropriate. This resolver combines
ThrowWhenAmbiguous and ThrowWhenSkipped.
See Also
ThrowWhenAmbiguous
An AmbiguousTimeResolver which simply throws an AmbiguousTimeException.
Since 1.0.x
Availability net45, netstandard1.3
Declaration
public static AmbiguousTimeResolver ThrowWhenAmbiguous { get; }
Property Value
Type | Description |
---|---|
AmbiguousTimeResolver | An AmbiguousTimeResolver which simply throws an AmbiguousTimeException. (The value returned is never null.) |
ThrowWhenSkipped
A SkippedTimeResolver which simply throws a SkippedTimeException.
Since 1.0.x
Availability net45, netstandard1.3
Declaration
public static SkippedTimeResolver ThrowWhenSkipped { get; }
Property Value
Type | Description |
---|---|
SkippedTimeResolver | A SkippedTimeResolver which simply throws a SkippedTimeException. (The value returned is never null.) |
Methods
CreateMappingResolver(AmbiguousTimeResolver, SkippedTimeResolver)
Since 1.0.x
Availability net45, netstandard1.3
Declaration
public static ZoneLocalMappingResolver CreateMappingResolver(AmbiguousTimeResolver ambiguousTimeResolver, SkippedTimeResolver skippedTimeResolver)
Parameters
Type | Name | Description |
---|---|---|
AmbiguousTimeResolver | ambiguousTimeResolver | Resolver to use for ambiguous mappings. |
SkippedTimeResolver | skippedTimeResolver | Resolver to use for "skipped" mappings. |
Returns
Type | Description |
---|---|
ZoneLocalMappingResolver | The logical combination of the two resolvers. (The value returned is never null.) |
Remarks
The
ZoneLocalMappingResolver
created by this method operates in the obvious way: unambiguous mappings
are returned directly, ambiguous mappings are delegated to the given AmbiguousTimeResolver
, and
"skipped" mappings are delegated to the given SkippedTimeResolver
.
Exceptions
Type | Condition |
---|---|
ArgumentNullException | ambiguousTimeResolver or skippedTimeResolver is null |