View source code Display the source code in std/datetime.d from which this page was generated on github. Improve this page Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone. Page wiki View or edit the community-maintained wiki page associated with this page.

Class std.datetime.WindowsTimeZone

This class is Windows-Only.

Represents a time zone from the Windows registry. Unfortunately, Windows does not use the TZ Database. To use the TZ Database, use PosixTimeZone (which reads its information from the TZ Database files on disk) on Windows by providing the TZ Database files and telling PosixTimeZone.getTimeZone where the directory holding them is.

The TZ Database files and Windows' time zone information frequently do not match. Windows has many errors with regards to when DST switches occur (especially for historical dates). Also, the TZ Database files include far more time zones than Windows does. So, for accurate time zone information, use the TZ Database files with PosixTimeZone rather than WindowsTimeZone. However, because WindowsTimeZone uses Windows system calls to deal with the time, it's far more likely to match the behavior of other Windows programs. Be aware of the differences when selecting a method.

WindowsTimeZone does not exist on Posix systems.

To get a WindowsTimeZone, either call WindowsTimeZone.getTimeZone or call TimeZone.getTimeZone (which will give a PosixTimeZone on Posix systems and a WindowsTimeZone on Windows systems).

Inherits from

Properties

Name Type Description
hasDST [get] bool Whether this time zone has Daylight Savings Time at any point in time. Note that for some time zone types it may not have DST for current dates but will still return true for hasDST because the time zone did at some point have DST.
dstName [get] string Typically, the abbreviation (generally 3 or 4 letters) for the time zone when DST is in effect (e.g. PDT). It is not necessarily unique.
name [get] string The name of the time zone per the TZ Database. This is the name used to get a .TimeZone, TimeZone by name with TimeZone.getTimeZone.
stdName [get] string Typically, the abbreviation (generally 3 or 4 letters) for the time zone when DST is not in effect (e.g. PST). It is not necessarily unique.

Methods

Name Description
dstInEffect Takes the number of hnsecs (100 ns) since midnight, January 1st, 1 A.D. in UTC time (i.e. std time) and returns whether DST is in effect in this time zone at the given point in time.
getInstalledTZNames Returns a list of the names of the time zones installed on the system. The list returned by WindowsTimeZone contains the Windows TZ names, not the TZ Database names. However, TimeZone.getinstalledTZNames will return the TZ Database names which are equivalent to the Windows TZ names.
getTimeZone Returns a .TimeZone, TimeZone with the given name per the Windows time zone names. The time zone information is fetched from the Windows registry.
tzToUTC Takes the number of hnsecs (100 ns) since midnight, January 1st, 1 A.D. in this time zone's time and converts it to UTC (i.e. std time).
utcToTZ Takes the number of hnsecs (100 ns) since midnight, January 1st, 1 A.D. in UTC time (i.e. std time) and converts it to this time zone's time.
factory Create instance of class specified by the fully qualified name classname. The class must either have no constructors or have a default constructor.
getInstalledTZNames Returns a list of the names of the time zones installed on the system.
getTimeZone Returns a .TimeZone, TimeZone with the give name per the TZ Database.
opCmp Compare with another Object obj.
opEquals Returns !=0 if this object does have the same contents as obj.
toHash Compute hash function for Object.
toString Convert Object to a human readable string.
utcOffsetAt Returns what the offset from UTC is at the given std time. It includes the DST offset in effect at that time (if any).

See Also

Home of the TZ Database files

Authors

Jonathan M Davis and Kato Shoichi

License

Boost License 1.0.

Comments