NZ changed the day light saving week a few years ago, hence the incorrect
calculation on older version of Delphi. Easiest way would probably be to
copy XE5's source code.

Robo


On Thu, Apr 3, 2014 at 12:30 AM, Alister Christie <
[email protected]> wrote:

> I've noticed in Delphi XE that TTimeZone.Local.ToUniversalTime is a week
> out on daylight savings, it works correctly in XE5 however (and probably
> earlier versions).
>
> program Project6;
>
> {$APPTYPE CONSOLE}
>
> uses
>   SysUtils,
>   DateUtils;
>
> begin
>   Writeln(DateTimeToStr(TTimeZone.Local.ToUniversalTime(StrToDateTime(
> '5/4/2014 2pm'))));
>   Writeln(DateTimeToStr(TTimeZone.Local.ToUniversalTime(StrToDateTime(
> '12/4/2014 2pm'))));
>   Readln;
> end.
>
>
> Outputs
>
> 5/04/2014 1:00:00 a.m.
> 6/04/2014 1:00:00 a.m.
>
> in XE (incorrectly) and
>
> 5/04/2014 1:00:00 a.m.
> 6/04/2014 2:00:00 a.m.
>
> in XE5 (correctly).  XE works correctly from the 13th onwards - so it's
> just a problem for a week.
>
> Does anyone have some code that does conversions to UTC correctly for
> Delphi XE?
>
> Alister Christie
> Computers for People
> Ph: 04 471 1849 Fax: 04 471 1266http://www.salespartner.co.nz
> Follow us on Twitter http://twitter.com/salespartner
> PO Box 13085
> Johnsonville
> Wellington
>
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: [email protected]
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to [email protected] with
> Subject: unsubscribe
>
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: [email protected]
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to [email protected] with 
Subject: unsubscribe

Reply via email to