anchor.diff:       ,tz_shift/3
     ]).
   
  -% utc_to_local(UtcDateTime, Timezone) -> LocalDateTime | {error, ErrDescr}
  +% utc_to_local(UtcDateTime, Timezone) -> LocalDateTime | [LocalDateTime, DstLocalDateTime] | {error, ErrDescr}
   %  UtcDateTime = DateTime()
   %  Timezone = String()
   %  LocalDateTime = DateTime()
  +%  DstLocalDateTime = DateTime()
   %  ErrDescr = atom(), unknown_tz
   utc_to_local(UtcDateTime, Timezone) ->
      case lists:keyfind(get_timezone(Timezone), 1, ?tz_database) of
  
positive.code:             is_not_in_dst ->
                 LocalDateTime;
              ambiguous_time ->
                 RecheckIt = adjust_datetime(LocalDateTime, DstShift),
                 case localtime_dst:check(RecheckIt, TzRule) of
                    ambiguous_time ->
                       RecheckIt;
                    _ ->
                       LocalDateTime
                 end
           end
     end.
  
  % local_to_utc(LocalDateTime, Timezone) -> UtcDateTime | tim_not_exists | {error, ErrDescr}
  %  LocalDateTime = DateTime()
  %  Timezone = String()
  %  UtcDateTime = DateTime()
  %  ErrDescr = atom(), unknown_tz
  local_to_utc(LocalDateTime, Timezone) ->
     case lists:keyfind(get_timezone(Timezone), 1, ?tz_database) of
  
negative.code:    case local_to_utc(LocalDateTime, TimezoneFrom) of
        Date = {{_,_,_},{_,_,_}} ->
           utc_to_local(Date, TimezoneTo);
        [{{_,_,_},{_,_,_}},{{_,_,_},{_,_,_}}] ->
           ambiguous;
        Res ->
           Res
     end.
  