anchor.diff:  %  LocalDateTime = DateTime()
   %  Timezone = String()
   %  UtcDateTime = DateTime()
  -%  ErrDescr = unknown_tz
  +%  ErrDescr = atom(), unknown_tz
   local_to_utc(LocalDateTime, Timezone) ->
      case lists:keyfind(get_timezone(Timezone), 1, ?tz_database) of
         false ->
  
positive.code:          Res
     end.
  
  % tz_name(DateTime(), Timezone) -> {Abbr, Name} | {{StdAbbr, StdName}, {DstAbbr, DstName}} | unable_to_detect
  %  Timezone = String()
  %  Abbr = String()
  %  Name = String()
  
negative.code:          end
     end.
  
  % the same as tz_shift/2, but calculates time difference between two local timezones
  tz_shift(LocalDateTime, TimezoneFrom, TimezoneTo) ->
     F = fun() ->
        FromShift = fmt_shift(tz_shift(LocalDateTime, TimezoneFrom)),
        DateTimeTo = localtime:local_to_local(LocalDateTime, TimezoneFrom, TimezoneTo),
        ToShift = fmt_shift(tz_shift(DateTimeTo, TimezoneTo)),
        fmt_min(ToShift-FromShift)
     end,
     try F()
     catch
        _:Err ->
           Err
     end.
  
  % =======================================================================
  % privates
  % =======================================================================
  
  adjust_datetime(DateTime, Minutes) ->
     Seconds = calendar:datetime_to_gregorian_seconds(DateTime) + Minutes * 60,
  