anchor.diff:  type
     TFslTimeSpan = Double;
   
  -  TFSLTimeZone = class (TFslObject)
  +  TFslTimeZone = record
     private
       FZone : String;
       FDetails : TBundledTimeZone;
  +    constructor Create(zone : String);
     public
  -    constructor Create(zone : String);
  -    class function Local: TFslTimeZone;
  +    class function other(zone : String) : TFslTimeZone; overload; static;
  +    class function local : TFslTimeZone; overload; static;
   
       function GetUtcOffset(const ADateTime: TDateTime): TFslTimeSpan; inline;
       function ToLocalTime(const ADateTime: TDateTime): TDateTime;
  
positive.code: end;
  
  Function TimeZoneBias(where : String) : TDateTime;
  var
    tz : TFslTimeZone;
  begin
    tz := TFslTimeZone.Create(where);
    try
      result := tz.GetUtcOffset(now);
    finally
      tz.free;
    end;
  end;
  
  Function TimeZoneBias(where : String; when : TDateTime) : TDateTime; Overload;
  var
    tz : TFslTimeZone;
  begin
    tz := TFslTimeZone.Create(where);
    try
      result := tz.GetUtcOffset(when);
    finally
      tz.free;
    end;
  end;
  
  
  
negative.code: 
  constructor TFslTimeZone.Create(zone: String);
  begin
    FZone := zone;
    if FZone = '' then
      FDetails := TBundledTimeZone.GetTimeZone(TimeZoneIANAName)
  