<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16608" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=656374308-06042009><FONT face=Arial 
color=#0000ff size=2>Ok, well&nbsp; finally worked it out. I was almost close, 
but your code helped out :-)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=656374308-06042009><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=656374308-06042009><FONT face=Arial 
color=#0000ff size=2>Thanks again.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=656374308-06042009></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=656374308-06042009><FONT face=Arial 
color=#0000ff size=2>Jeremy</FONT></SPAN></DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> delphi-bounces@delphi.org.nz 
[mailto:delphi-bounces@delphi.org.nz] <B>On Behalf Of </B>Kyley 
Harris<BR><B>Sent:</B> 6 April 2009 14:51<BR><B>To:</B> NZ Borland Developers 
Group - Delphi List<BR><B>Subject:</B> Re: [DUG] timezone 
help<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV>unit uDateTimeGMTConversion;</DIV>
<DIV><BR></DIV>
<DIV>interface</DIV>
<DIV><BR></DIV>
<DIV>uses</DIV>
<DIV>&nbsp;&nbsp;Sysutils,</DIV>
<DIV>&nbsp;&nbsp;classes, Windows, uHssShareCommon, uItem;</DIV>
<DIV><BR></DIV>
<DIV>type</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;TDateTimeGMTConversion = class(TObject)</DIV>
<DIV>&nbsp;&nbsp;private</DIV>
<DIV>&nbsp;&nbsp; &nbsp;FZoneType:DWord;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;FTimeZoneInfo: TTimeZoneInformation;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;FForceTimeZone: boolean;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;FForcedTimeZoneInfo: TTimeZoneInformation;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;function GetTimeZoneInfo:TTimeZoneInformation;</DIV>
<DIV>&nbsp;&nbsp;public</DIV>
<DIV>&nbsp;&nbsp; &nbsp;constructor create;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;class procedure 
ForceLocalTimeZoneIgnoreGMT(AValue:boolean);</DIV>
<DIV>&nbsp;&nbsp; &nbsp;function DateIsDaylight(ADate:TDateTime):boolean;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;function 
LocalMachineTimeToGMT(ALocalMachineTime:TDateTime):TDateTime;virtual;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;function 
GMTToLocalMachineTime(AGMTTime:TDateTime):TDateTime;virtual;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;procedure 
SetTimeZone(Zone:THssTimeZoneInformation);</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;property TimeZoneInfo:TTimeZoneInformation read 
FTimeZoneInfo;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;property ForceTimeZone:boolean read FForceTimeZone write 
FForceTimeZone;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;property ForcedTimeZoneInfo:TTimeZoneInformation read 
FForcedTimeZoneInfo write FForcedTimeZoneInfo;</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;TTimeZones = class(THssTimeZoneInformations)</DIV>
<DIV>&nbsp;&nbsp;public</DIV>
<DIV>&nbsp;&nbsp; &nbsp;function 
GetBIAS(sender:TObject;AItem:TItem;AFieldName:string;AFieldValue:Variant):variant;</DIV>
<DIV>&nbsp;&nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;TTimeZoneData = class(THssTimeZoneInformation)</DIV>
<DIV>&nbsp;&nbsp;public</DIV>
<DIV>&nbsp;&nbsp; &nbsp;TimeZoneInformation:TTimeZoneInformation;</DIV>
<DIV>&nbsp;&nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>var</DIV>
<DIV>&nbsp;&nbsp;GMTEngine:TDateTimeGMTConversion;</DIV>
<DIV>&nbsp;&nbsp;TimeZones:THssTimeZoneInformations;</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>var</DIV>
<DIV>&nbsp;&nbsp;ZeroDateThreshold:TDateTime;</DIV>
<DIV>implementation</DIV>
<DIV><BR></DIV>
<DIV>uses DateUtils , Registry;</DIV>
<DIV><BR></DIV>
<DIV>var</DIV>
<DIV>&nbsp;&nbsp;AForceLocalTimeOnly:boolean=false;</DIV>
<DIV><BR></DIV>
<DIV>{ TDateTimeGMTConversion }</DIV>
<DIV><BR></DIV>
<DIV>constructor TDateTimeGMTConversion.create;</DIV>
<DIV>begin</DIV>
<DIV>&nbsp;&nbsp;inherited;</DIV>
<DIV>&nbsp;&nbsp;FZoneType := GetTimeZoneInformation(FTimeZoneInfo);</DIV>
<DIV>end;</DIV>
<DIV><BR></DIV>
<DIV>function TDateTimeGMTConversion.DateIsDaylight(ADate: TDateTime): 
boolean;</DIV>
<DIV>var</DIV>
<DIV>&nbsp;&nbsp;y,m,d,h,n,s,z:word;</DIV>
<DIV>&nbsp;&nbsp;TZI:TTimeZoneInformation;</DIV>
<DIV>begin</DIV>
<DIV>&nbsp;&nbsp;result := false;</DIV>
<DIV>&nbsp;&nbsp;TZI := GetTimeZoneInfo;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;if (TZI.StandardDate.wMonth = 0) or (TZI.DaylightDate.wMonth = 
0) then</DIV>
<DIV>&nbsp;&nbsp; &nbsp;exit;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;DecodeDateTime(ADate,y,m,d,h,n,s,z);</DIV>
<DIV>&nbsp;&nbsp;if TZI.StandardDate.wMonth &lt; TZI.DaylightDate.wMonth 
then</DIV>
<DIV>&nbsp;&nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := not (</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(EncodeDateTime(y,m,d,h,m,s,z) &gt;=</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; 
&nbsp;EncodeDateTime(y,TZI.StandardDate.wMonth,TZI.StandardDate.wDay,TZI.StandardDate.wHour,0,0,0) 
) and</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(EncodeDateTime(y,m,d,h,m,s,z) &lt;=</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; 
&nbsp;EncodeDateTime(y,TZI.DaylightDate.wMonth,TZI.DaylightDate.wDay,TZI.DaylightDate.wHour,0,0,0) 
)</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;);</DIV>
<DIV>&nbsp;&nbsp;end else</DIV>
<DIV>&nbsp;&nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := (</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(EncodeDateTime(y,m,d,h,m,s,z) &gt;=</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; 
&nbsp;EncodeDateTime(y,TZI.DaylightDate.wMonth,TZI.DaylightDate.wDay,TZI.DaylightDate.wHour,0,0,0) 
) and</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;(EncodeDateTime(y,m,d,h,m,s,z) &lt;=</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; 
&nbsp;EncodeDateTime(y,TZI.StandardDate.wMonth,TZI.StandardDate.wDay,TZI.StandardDate.wHour,0,0,0) 
)</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;);</DIV>
<DIV>&nbsp;&nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;// &nbsp;if TZI.StandardDate.wMonth</DIV>
<DIV><BR></DIV>
<DIV>end;</DIV>
<DIV><BR></DIV>
<DIV>procedure TDateTimeGMTConversion.SetTimeZone(</DIV>
<DIV>&nbsp;&nbsp;Zone: THssTimeZoneInformation);</DIV>
<DIV>begin</DIV>
<DIV>&nbsp;&nbsp;if Zone = nil then</DIV>
<DIV>&nbsp;&nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp;ForceTimeZone := false;</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;end else</DIV>
<DIV>&nbsp;&nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp;Assert(Zone is TTimeZoneData);</DIV>
<DIV>&nbsp;&nbsp; &nbsp;ForceTimeZone := True;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;FForcedTimeZoneInfo := (Zone as 
TTimeZoneData).TimeZoneInformation;</DIV>
<DIV>&nbsp;&nbsp;end;</DIV>
<DIV>end;</DIV>
<DIV><BR></DIV>
<DIV>function TDateTimeGMTConversion.GetTimeZoneInfo: 
TTimeZoneInformation;</DIV>
<DIV>begin</DIV>
<DIV>&nbsp;&nbsp;if FForceTimeZone then</DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := FForcedTimeZoneInfo else</DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := FTimeZoneInfo;</DIV>
<DIV>end;</DIV>
<DIV><BR></DIV>
<DIV>function TDateTimeGMTConversion.GMTToLocalMachineTime(</DIV>
<DIV>&nbsp;&nbsp;AGMTTime: TDateTime): TDateTime;</DIV>
<DIV>begin</DIV>
<DIV>&nbsp;&nbsp;if AGMTTime &lt; ZeroDateThreshold then</DIV>
<DIV>&nbsp;&nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := 0.0;</DIV>
<DIV>&nbsp;&nbsp;end else</DIV>
<DIV>&nbsp;&nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp;if AForceLocalTimeOnly and (not FForceTimeZone) 
then</DIV>
<DIV>&nbsp;&nbsp; &nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;result := RecodeMilliSecond(AGMTTime,0);</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;exit;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := IncMinute(AGMTTime,GetTimeZoneInfo.Bias * 
-1);</DIV>
<DIV>&nbsp;&nbsp; &nbsp;if DateIsDaylight(result) then</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;result := 
&nbsp;IncMinute(result,GetTimeZoneInfo.DaylightBias * -1);</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := RecodeMilliSecond(result,0);</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;end;</DIV>
<DIV>end;</DIV>
<DIV><BR></DIV>
<DIV>function TDateTimeGMTConversion.LocalMachineTimeToGMT(</DIV>
<DIV>&nbsp;&nbsp;ALocalMachineTime: TDateTime): TDateTime;</DIV>
<DIV>begin</DIV>
<DIV>&nbsp;&nbsp;if ALocalMachineTime &lt;= ZeroDateThreshold then</DIV>
<DIV>&nbsp;&nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := 0.0;</DIV>
<DIV>&nbsp;&nbsp;end else</DIV>
<DIV>&nbsp;&nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp;if AForceLocalTimeOnly and (not FForceTimeZone) 
then</DIV>
<DIV>&nbsp;&nbsp; &nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;result := 
RecodeMilliSecond(ALocalMachineTime,0);</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;exit;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := 
IncMinute(ALocalMachineTime,GetTimeZoneInfo.Bias);</DIV>
<DIV>&nbsp;&nbsp; &nbsp;if DateIsDaylight(ALocalMachineTime) then</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;result := 
IncMinute(result,GetTimeZoneInfo.DaylightBias);</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;result := RecodeMilliSecond(result,0);</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;end;</DIV>
<DIV>end;</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>type</DIV>
<DIV>&nbsp;&nbsp;REGTzInfo = record</DIV>
<DIV>&nbsp;&nbsp; &nbsp;Bias: Longint;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;StandardBias: Longint;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;DaylightBias: Longint;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;StandardDate: TSystemTime;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;DaylightDate: TSystemTime;</DIV>
<DIV>&nbsp;&nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>var</DIV>
<DIV>&nbsp;&nbsp;Keys:TStringList;</DIV>
<DIV>&nbsp;&nbsp;i:integer;</DIV>
<DIV>&nbsp;&nbsp;TZ:TTimeZoneData;</DIV>
<DIV>&nbsp;&nbsp;rTZ:REGTzInfo;</DIV>
<DIV>class procedure TDateTimeGMTConversion.ForceLocalTimeZoneIgnoreGMT(</DIV>
<DIV>&nbsp;&nbsp;AValue: boolean);</DIV>
<DIV>begin</DIV>
<DIV>&nbsp;&nbsp;AForceLocalTimeOnly := AValue;</DIV>
<DIV>end;</DIV>
<DIV><BR></DIV>
<DIV>{ TTimeZones }</DIV>
<DIV><BR></DIV>
<DIV>function TTimeZones.GetBIAS(sender: TObject; AItem: TItem;</DIV>
<DIV>&nbsp;&nbsp;AFieldName: string; AFieldValue: Variant): variant;</DIV>
<DIV>var</DIV>
<DIV>&nbsp;&nbsp;z:TTimeZoneData absolute AITem;</DIV>
<DIV>begin</DIV>
<DIV>&nbsp;&nbsp;result := z.TimeZoneInformation.Bias * -1;</DIV>
<DIV>end;</DIV>
<DIV><BR></DIV>
<DIV>initialization</DIV>
<DIV>&nbsp;&nbsp;GMTEngine := TDateTimeGMTConversion.create;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;TimeZones := TTimeZones.Create(nil);</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;TimeZones.BeginUpdate;</DIV>
<DIV>&nbsp;&nbsp;with TRegistry.Create(KEY_READ) do</DIV>
<DIV>&nbsp;&nbsp;try</DIV>
<DIV>&nbsp;&nbsp; &nbsp;RootKey := HKEY_LOCAL_MACHINE;</DIV>
<DIV>&nbsp;&nbsp; &nbsp;if OpenKey('SOFTWARE\Microsoft\Windows 
NT\CurrentVersion\Time Zones',false) then</DIV>
<DIV>&nbsp;&nbsp; &nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;Keys := TStringList.Create();</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;try</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;GetKeyNames(Keys);</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;CloseKey;</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for i := 0 to Keys.Count -1 do</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if 
OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time 
Zones\'+Keys[i],false) then</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TZ := 
TimeZones.Add(TTimeZoneData) as TTimeZoneData;</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;with TZ do</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Description := 
ReadString('Std');</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DisplayData := 
ReadString('Display');</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp;ReadBinaryData('TZI',rTZ,SizeOf(RegTZInfo)) ;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp;TimeZoneInformation.Bias := rtZ.Bias;</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp;TimeZoneInformation.StandardDate := rtZ.StandardDate;</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp;TimeZoneInformation.StandardBias := rtZ.StandardBias;</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp;TimeZoneInformation.DaylightDate := rtZ.DaylightDate;</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp;TimeZoneInformation.DaylightBias := rtZ.DaylightBias;</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CloseKey;</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;finally</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;FreeAndNil(Keys);</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp; &nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;finally</DIV>
<DIV>&nbsp;&nbsp; &nbsp;Free;</DIV>
<DIV>&nbsp;&nbsp;end;</DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;TimeZones.EndUpdate;</DIV>
<DIV>&nbsp;&nbsp;TimeZones.NewIndex('BIAS','GETBIAS',TTimeZones 
(TimeZones).GetBias);</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>&nbsp;&nbsp;ZeroDateThreshold := EncodeDate(1901,01,01);</DIV>
<DIV>finalization</DIV>
<DIV>&nbsp;&nbsp;FreeAndNil(GMTEngine);</DIV>
<DIV>&nbsp;&nbsp;FreeAndNil(TimeZones);</DIV>
<DIV>end.</DIV>
<DIV><BR></DIV><BR>
<DIV class=gmail_quote>On Mon, Apr 6, 2009 at 2:44 PM, Jeremy Coulter <SPAN 
dir=ltr>&lt;<A 
href="mailto:jscoulter@gmail.com">jscoulter@gmail.com</A>&gt;</SPAN> wrote:<BR>
<BLOCKQUOTE class=gmail_quote 
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hi 
  all.<BR>I want to write something that will take a time in a different 
  timezone and convert it to another time zone.<BR><BR>i.e. If its say&nbsp; 
  11pm Sunday in say New York what time is that here in NZ? I thought of NY 
  since it can be "yesterday" their time.<BR><BR>I have some code that tells me 
  what the GMT offset is for NY, but how do I calculate the time to NZ 
  time?<BR><FONT 
  color=#888888><BR><BR>Jeremy<BR><BR></FONT><BR>_______________________________________________<BR>NZ 
  Borland Developers Group - Delphi mailing list<BR>Post: <A 
  href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</A><BR>Admin: <A 
  href="http://delphi.org.nz/mailman/listinfo/delphi" 
  target=_blank>http://delphi.org.nz/mailman/listinfo/delphi</A><BR>Unsubscribe: 
  send an email to <A 
  href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</A> 
  with Subject: unsubscribe<BR></BLOCKQUOTE></DIV><BR><BR clear=all><BR>-- 
<BR>Kyley Harris<BR>Harris Software<BR>+64-21-671-821<BR></BODY></HTML>