Class DateTimeZoneCache
Implements
Inherited Members
Namespace: NodaTime.TimeZones
Assembly: NodaTime.dll
Syntax
public sealed class DateTimeZoneCache : IDateTimeZoneProvider
Remarks
Constructors
DateTimeZoneCache(IDateTimeZoneSource)
Declaration
public DateTimeZoneCache(IDateTimeZoneSource source)
Parameters
Type | Name | Description |
---|---|---|
IDateTimeZoneSource | source | The IDateTimeZoneSource for this provider. |
Remarks
Exceptions
Type | Condition |
---|---|
ArgumentNullException | source is null. |
InvalidDateTimeZoneSourceException | source violates its contract |
Properties
Ids
Declaration
public ReadOnlyCollection<string> Ids { get; }
Property Value
Type | Description |
---|---|
ReadOnlyCollection<String> | The IEnumerable<T> of string ids. |
Remarks
This list will be sorted in ordinal lexicographic order. It cannot be modified by callers, and must not be modified by the provider either: client code can safely treat it as thread-safe and deeply immutable.
In addition to the list returned here, providers always support the fixed-offset timezones with IDs "UTC" and "UTC+/-Offset". These may or may not be included explicitly in this list.
Item[String]
Declaration
public DateTimeZone this[string id] { get; }
Parameters
Type | Name | Description |
---|---|---|
String | id | The time zone id to find. |
Property Value
Type | Description |
---|---|
DateTimeZone | The DateTimeZone for the given ID. |
Remarks
Unlike GetZoneOrNull(String), this indexer will never return a null reference. If the ID is not supported by this provider, it will throw DateTimeZoneNotFoundException.
Note that this may return a DateTimeZone that has a different ID to that requested, if the ID provided is an alias.
Note also that this method is not required to return the same DateTimeZone instance for successive requests for the same ID; however, all instances returned for a given ID must compare as equal.
The fixed-offset timezones with IDs "UTC" and "UTC+/-Offset" are always available. These must return instances that are equal to those returned by ForOffset(Offset).
Exceptions
Type | Condition |
---|---|
DateTimeZoneNotFoundException | This provider does not support the given ID. |
ArgumentNullException | id is null. |
VersionId
Declaration
public string VersionId { get; }
Property Value
Type | Description |
---|---|
String |
Methods
GetSystemDefault()
Declaration
public DateTimeZone GetSystemDefault()
Returns
Type | Description |
---|---|
DateTimeZone | The provider-specific representation of the system default time zone. |
Remarks
BclDateTimeZone
is not available on the PCL build of Noda Time, so
this fallback strategy can only be used with the desktop version.
Exceptions
Type | Condition |
---|---|
DateTimeZoneNotFoundException | The system default time zone is not mapped by this provider. |
GetZoneOrNull(String)
Declaration
public DateTimeZone GetZoneOrNull(string id)
Parameters
Type | Name | Description |
---|---|---|
String | id | The time zone ID to find. |
Returns
Type | Description |
---|---|
DateTimeZone | The DateTimeZone for the given ID or null if the provider does not support the given ID. |
Remarks
Note that this may return a DateTimeZone that has a different ID to that requested, if the ID provided is an alias.
Note also that this method is not required to return the same DateTimeZone instance for successive requests for the same ID; however, all instances returned for a given ID must compare as equal.
The fixed-offset timezones with IDs "UTC" and "UTC+/-Offset" are always available. These must return instances that are equal to those returned by ForOffset(Offset).
Exceptions
Type | Condition |
---|---|
ArgumentNullException | id is null. |