TIME %AddIntervalLocal( TIME in TimeA, REAL in TimeR, TEXT in timeZone := %GetCurrentTimeZone() ) |
TimeA | Absolute time. |
TimeR | Relative time. |
timeZone | Name of the time zone used for conversion to local time (e.g. "Europe/London") or definition of fixed offset from UTC using format "(+|-)hh[:mi[:ss]]", where hh defines number of hours, mi defines number of minutes, and ss defines number of seconds. Sign as well as number of hours are mandatory parts of offset definition, number of minutes and seconds are optional and default to 0 (e.g. "+02:30" defines offset of 2 hours and 30 minutes from UTC). Empty text has the same meaning as function %GetCurrentTimeZone. Note: For historical reasons, integer parameter is also accepted. Its interpretation is as follows: 0 - zone "Europe/London", 3600 - zone "Europe/Bratislava", 7200 - zone "Europe/Kiev", 21600 - zone "Asia/Almaty". Usage of integer parameter is deprecated and generates warning into log file! |
; ================================================================= ; Using time zone "Europe/Bratislava" ; Daylight saving time was observed in year 2009, therefore time shifts occured. ; Winter [B] time was 1 hour ahead of UTC, summer [A] time was 2 hours ahead of UTC. ; Summer time was from 29th March 2009 to 24th October 2009. ; A3:00:00 is changed to B2:00:00 on Sunday (25th October 2009). ; ================================================================= BEGIN TIME _baseTime TIME _addLocal1 TIME _addLocal2 ; 2009-10-24 23:30:00 UTC / 2009-10-25 01:30:00 UTC+02 _baseTime := %StrToTimeEx("2009-10-25 01:30:00", "yyyy-mm-dd hh:mi:ss", "Europe/Bratislava") ; add 1 hour - result time 2009-10-25 A2:30:00.000 UTC+02 _addLocal1 := %AddIntervalLocal(_baseTime, 3600, "Europe/Bratislava") ; add 2 hour - result time 2009-10-25 03:30:00.000 UTC+01 _addLocal2 := %AddIntervalLocal(_baseTime, 7200, "Europe/Bratislava") END |