code: def unix_time_to_datetime(time_input, tz=None):
          
          dt = None
          if re.compile(r'^[0-9]{9,10}(?:\.[0-9]{0,10})?$').findall(str(time_input)):
              dt = datetime.fromtimestamp(float(time_input), tz=timezone('UTC'))
              # don't covert timezone if dt timezone already in the correct timezone
              if tz is not None and tz != dt.tzname():
                  dt = dt.astimezone(timezone(tz))
  
          return dt
docs: Convert (unix time|epoch time|posix time) in format of 1510686617 or 1510686617.298753
              to datetime.datetime type.
  
          .. note:: This method assumes UTC for all inputs.
  
          .. note:: This method only accepts a 9-10 character time_input.
  
          Args:
              time_input (string): The time input string (see formats above).
              tz (string): The time zone for the returned datetime (e.g. UTC).
  
          Returns:
              (datetime.datetime): Python datetime.datetime object.