Difference between revisions of "Unit Timezone"
(3 intermediate revisions by the same user not shown) | |||
Line 192: | Line 192: | ||
| Signature for entry validation | | Signature for entry validation | ||
|- | |- | ||
− | | <code>Name: | + | | <code>Name:array[0..TIMEZONE_NAME_LENGTH - 1] of Char;</code> |
− | | | + | | Timezone name |
|- | |- | ||
− | | <code>Description: | + | | <code>Description:array[0..TIMEZONE_DESC_LENGTH - 1] of Char;</code> |
− | | | + | | Timezone description |
|- | |- | ||
| <code>Bias:LongInt;</code> | | <code>Bias:LongInt;</code> | ||
| | | | ||
|- | |- | ||
− | | <code>StandardName: | + | | <code>StandardName:array[0..TIMEZONE_NAME_LENGTH - 1] of Char;</code> |
− | | | + | | Standard name |
|- | |- | ||
| <code>StandardBias:LongInt;</code> | | <code>StandardBias:LongInt;</code> | ||
Line 210: | Line 210: | ||
| | | | ||
|- | |- | ||
− | | <code>DaylightName: | + | | <code>DaylightName:array[0..TIMEZONE_NAME_LENGTH - 1] of Char;</code> |
− | | | + | | Daylight name |
|- | |- | ||
| <code>DaylightBias:LongInt;</code> | | <code>DaylightBias:LongInt;</code> | ||
Line 317: | Line 317: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function TimezoneGetState(Timezone:PTimezoneEntry):LongWord;</pre> | + | <pre style="border: 0; padding-bottom:0px;">function TimezoneGetState(Timezone:PTimezoneEntry):LongWord; inline;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the state of the supplied Timezone at the current date and time</div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Timezone |
− | | | + | | The timezone entry to get the state for |
+ | |- | ||
+ | ! Return | ||
+ | | The TIME_ZONE_ID_* constant representing the standard / daylight state of the timezone | ||
|- | |- | ||
|} | |} | ||
Line 329: | Line 332: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function | + | <pre style="border: 0; padding-bottom:0px;">function TimezoneGetStateEx(Timezone:PTimezoneEntry; const DateTime:TDateTime):LongWord;</pre> |
− | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' | + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the state of the supplied Timezone at the specified date and time</div> |
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Timezone |
− | | | + | | The timezone entry to get the state for |
+ | |- | ||
+ | ! DateTime | ||
+ | | The date and time to get the state of the timezone at | ||
+ | |- | ||
+ | ! Return | ||
+ | | The TIME_ZONE_ID_* constant representing the standard / daylight state of the timezone | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function TimezoneGetActiveBias(Timezone:PTimezoneEntry):LongInt; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the bias (offset between UTC and Local) of the supplied Timezone at the current date and time</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Timezone | ||
+ | | The timezone entry to get the bias for | ||
+ | |- | ||
+ | ! Return | ||
+ | | The bias in minutes offset between UTC and Local including any daylight bias if active | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function TimezoneGetActiveBiasEx(Timezone:PTimezoneEntry; const DateTime:TDateTime):LongInt;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the bias (offset between UTC and Local) of the supplied Timezone at the specified date and time</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Timezone | ||
+ | | The timezone entry to get the bias for | ||
+ | |- | ||
+ | ! DateTime | ||
+ | | The date and time to get the bias of the timezone at | ||
+ | |- | ||
+ | ! Return | ||
+ | | The bias in minutes offset between UTC and Local | ||
|- | |- | ||
|} | |} | ||
Line 438: | Line 480: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
<pre style="border: 0; padding-bottom:0px;">function TimezoneFind(const Name:String):PTimezoneEntry;</pre> | <pre style="border: 0; padding-bottom:0px;">function TimezoneFind(const Name:String):PTimezoneEntry;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function TimezoneFindByStandard(const StandardName:String):PTimezoneEntry;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function TimezoneFindByDaylight(const DaylightName:String):PTimezoneEntry;</pre> | ||
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
Line 464: | Line 530: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function TimezoneGetCount:LongWord | + | <pre style="border: 0; padding-bottom:0px;">function TimezoneGetCount:LongWord;</pre> |
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current timezone count</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current timezone count</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
Line 476: | Line 542: | ||
<br /> | <br /> | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
− | <pre style="border: 0; padding-bottom:0px;">function TimezoneGetDefault:PTimezoneEntry | + | <pre style="border: 0; padding-bottom:0px;">function TimezoneGetDefault:PTimezoneEntry;</pre> |
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current default timezone</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current default timezone</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
Line 519: | Line 585: | ||
! Note | ! Note | ||
| None documented | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function TimezoneUpdateEnvironment:LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Update the TZ environment variable to represent the current timezone</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | See: https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html | ||
|- | |- | ||
|} | |} | ||
Line 550: | Line 628: | ||
<pre style="border: 0; padding-bottom:0px;">function TimezoneNameReplaceChar(const AName:String; AChar,AReplace:Char):String;</pre> | <pre style="border: 0; padding-bottom:0px;">function TimezoneNameReplaceChar(const AName:String; AChar,AReplace:Char):String;</pre> | ||
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Same as ReplaceChar in UltiboUtils, reproduced here to avoid including extra units</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Same as ReplaceChar in UltiboUtils, reproduced here to avoid including extra units</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! Note | ||
+ | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function TimezoneNameToAbbreviation(const AName:String):String;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the abbreviation of a timezone name (eg Central Standard Time = CST)</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" |
Latest revision as of 03:34, 15 October 2024
Return to Unit Reference
Description
Ultibo Timezone Interface unit
Constants
TIME_ZONE_*
TIME_ZONE_ID_UNKNOWN = 0;
|
|
TIME_ZONE_ID_STANDARD = 1;
|
|
TIME_ZONE_ID_DAYLIGHT = 2;
|
|
TIME_ZONE_ID_INVALID = DWORD($FFFFFFFF);
|
TIMEZONE_SIGNATURE_*
TIMEZONE_SIGNATURE = $ED9A1BC3;
|
Type definitions
System time
LPSYSTEMTIME = SysUtils.LPSYSTEMTIME;
SYSTEMTIME = SysUtils.SYSTEMTIME;
TSystemTime = SysUtils.TSystemTime;
PSystemTime = SysUtils.PSystemTime;
_SYSTEMTIME = SysUtils.SYSTEMTIME;
wYear:Word;
|
|
wMonth:Word;
|
|
wDayOfWeek:Word;
|
|
wDay:Word;
|
|
wHour:Word;
|
|
wMinute:Word;
|
|
wSecond:Word;
|
|
wMilliseconds:Word;
|
Timezone information
TIME_ZONE_INFORMATION = _TIME_ZONE_INFORMATION;
LPTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;
TTimeZoneInformation = TIME_ZONE_INFORMATION;
PTimeZoneInformation = PTIME_ZONE_INFORMATION;
PTIME_ZONE_INFORMATION = ^TIME_ZONE_INFORMATION;
_TIME_ZONE_INFORMATION = record
Bias:LONG;
|
|
StandardName:array [0..31] of WCHAR;
|
|
StandardDate:SYSTEMTIME;
|
|
StandardBias:LONG;
|
|
DaylightName:array [0..31] of WCHAR;
|
|
DaylightDate:SYSTEMTIME;
|
|
DaylightBias:LONG;
|
Timezone data
PTimezoneData = ^TTimezoneData;
TTimezoneData = record
Name:String[32];
|
|
Description:String[64];
|
|
Bias:LongInt;
|
|
StandardName:String[32];
|
|
StandardBias:LongInt;
|
|
StandardStart:SYSTEMTIME;
|
|
DaylightName:String[32];
|
|
DaylightBias:LongInt;
|
|
DaylightStart:SYSTEMTIME;
|
Timezone enumeration callback
TTimezoneEnumerate = function(Timezone:PTimezoneEntry; Data:Pointer):LongWord;
|
Timezone entry
PTimezoneEntry = ^TTimezoneEntry;
TTimezoneEntry = record
Timezone Properties | |
Signature:LongWord;
|
Signature for entry validation |
Name:array[0..TIMEZONE_NAME_LENGTH - 1] of Char;
|
Timezone name |
Description:array[0..TIMEZONE_DESC_LENGTH - 1] of Char;
|
Timezone description |
Bias:LongInt;
|
|
StandardName:array[0..TIMEZONE_NAME_LENGTH - 1] of Char;
|
Standard name |
StandardBias:LongInt;
|
|
StandardStart:SYSTEMTIME;
|
|
DaylightName:array[0..TIMEZONE_NAME_LENGTH - 1] of Char;
|
Daylight name |
DaylightBias:LongInt;
|
|
DaylightStart:SYSTEMTIME;
|
|
Internal Properties | |
Prev:PTimezoneEntry;
|
Previous entry in Timezone table |
Next:PTimezoneEntry;
|
Next entry in Timezone table |
Public variables
None defined
Function declarations
Initialization functions
procedure TimezoneInit;
Note | None documented |
---|
Timezone functions
function TimezoneAdd(Data:PTimezoneData; Default:Boolean):LongWord;
Note | None documented |
---|
function TimezoneDelete(Timezone:PTimezoneEntry):LongWord;
Note | None documented |
---|
function TimezoneGetName(Timezone:PTimezoneEntry):String;
Note | None documented |
---|
function TimezoneGetDescription(Timezone:PTimezoneEntry):String;
Note | None documented |
---|
function TimezoneGetBias(Timezone:PTimezoneEntry):LongInt;
Note | None documented |
---|
function TimezoneGetState(Timezone:PTimezoneEntry):LongWord; inline;
Timezone | The timezone entry to get the state for |
---|---|
Return | The TIME_ZONE_ID_* constant representing the standard / daylight state of the timezone |
function TimezoneGetStateEx(Timezone:PTimezoneEntry; const DateTime:TDateTime):LongWord;
Timezone | The timezone entry to get the state for |
---|---|
DateTime | The date and time to get the state of the timezone at |
Return | The TIME_ZONE_ID_* constant representing the standard / daylight state of the timezone |
function TimezoneGetActiveBias(Timezone:PTimezoneEntry):LongInt; inline;
Timezone | The timezone entry to get the bias for |
---|---|
Return | The bias in minutes offset between UTC and Local including any daylight bias if active |
function TimezoneGetActiveBiasEx(Timezone:PTimezoneEntry; const DateTime:TDateTime):LongInt;
Timezone | The timezone entry to get the bias for |
---|---|
DateTime | The date and time to get the bias of the timezone at |
Return | The bias in minutes offset between UTC and Local |
function TimezoneGetStandardName(Timezone:PTimezoneEntry):String;
Note | None documented |
---|
function TimezoneGetStandardBias(Timezone:PTimezoneEntry):LongInt;
Note | None documented |
---|
function TimezoneGetStandardDate(Timezone:PTimezoneEntry; Next:Boolean):TDateTime;
Note | None documented |
---|
function TimezoneGetStandardStart(Timezone:PTimezoneEntry):SYSTEMTIME;
Note | None documented |
---|
function TimezoneGetDaylightName(Timezone:PTimezoneEntry):String;
Note | None documented |
---|
function TimezoneGetDaylightBias(Timezone:PTimezoneEntry):LongInt;
Note | None documented |
---|
function TimezoneGetDaylightDate(Timezone:PTimezoneEntry; Next:Boolean):TDateTime;
Note | None documented |
---|
function TimezoneGetDaylightStart(Timezone:PTimezoneEntry):SYSTEMTIME;
Note | None documented |
---|
function TimezoneFind(const Name:String):PTimezoneEntry;
Note | None documented |
---|
function TimezoneFindByStandard(const StandardName:String):PTimezoneEntry;
Note | None documented |
---|
function TimezoneFindByDaylight(const DaylightName:String):PTimezoneEntry;
Note | None documented |
---|
function TimezoneEnumerate(Callback:TTimezoneEnumerate; Data:Pointer):LongWord;
Note | None documented |
---|
Timezone helper functions
function TimezoneGetCount:LongWord;
Note | None documented |
---|
function TimezoneGetDefault:PTimezoneEntry;
Note | None documented |
---|
function TimezoneSetDefault(Timezone:PTimezoneEntry):LongWord;
Note | None documented |
---|
function TimezoneCheck(Timezone:PTimezoneEntry):PTimezoneEntry;
Note | None documented |
---|
function TimezoneUpdateOffset:LongWord;
Note | None documented |
---|
function TimezoneUpdateEnvironment:LongWord;
function TimezoneStartToDateTime(const AStart:SYSTEMTIME; AYear:Word):TDateTime;
Note | None documented |
---|
function TimezoneStartToDescription(const AStart:SYSTEMTIME):String;
Note | None documented |
---|
function TimezoneNameReplaceChar(const AName:String; AChar,AReplace:Char):String;
Note | None documented |
---|
function TimezoneNameToAbbreviation(const AName:String):String;
Note | None documented |
---|
Return to Unit Reference