code: def compile_datetime(rule):
      
      if isinstance(rule.value, datetime.datetime):
          return rule
      try:
          # Try numeric type
          return DatetimeRule(datetime.datetime.fromtimestamp(float(rule.value)))
      except (TypeError, ValueError):
          pass
      # Try RFC3339 timestamp string
      res = TIMESTAMP_RE.match(str(rule.value))
      if res is not None:
          year, month, day, hour, minute, second = (int(n or 0) for n in res.group(*range(1, 7)))
          us_str = (res.group(7) or "0")[:6].ljust(6, "0")
          us_int = int(us_str)
          zonestr = res.group(8)
          zonespl = (0, 0) if zonestr in ['z', 'Z'] else [int(i) for i in zonestr.split(":")]
          zonediff = datetime.timedelta(minutes = zonespl[0]*60+zonespl[1])
          return DatetimeRule(datetime.datetime(year, month, day, hour, minute, second, us_int) - zonediff)
      raise ValueError("Wrong datetime format '{}'".format(rule.value))
docs: Compiler helper method: attempt to compile constant into object representing
      datetime object to enable relations and thus simple comparisons using Python
      operators.