Originally reported in https://github.com/localstack/localstack/issues/2099, the CreationTime for CF stacks was hardcoded. This was fixed in in LocalStack itself (https://github.com/localstack/localstack/pull/2103), but is now also fixed in moto (https://github.com/spulec/moto/pull/2818).

I don't know what version of moto you're using, and whether it's acceptable to use dev-releases, but if you do: 

moto 1.3.15.dev550 should fix this issue, so the LS fix can be removed if you upgrade :) 
if is_local_service_url(url):
                parsed_path = urlparse.urlparse(url).path.lstrip('/')
                parts = parsed_path.partition('/')
                client = aws_stack.connect_to_service('s3')
                result = client.get_object(Bucket=parts[0], Key=parts[2])
                body = to_str(result['Body'].read())
                return body
            raise Exception('Unable to fetch template body (code %s) from URL %s' % (status_code, url))
        return response.content
    raise Exception('Unable to get template body from input: %s' % req_data)
def is_local_service_url(url):
    return '://%s:' % config.LOCALSTACK_HOSTNAME in url
def is_real_s3_url(url):
    return re.match(r'.*s3(\-website)?\.([^\.]+\.)?amazonaws.com.*', url or '')
def convert_s3_to_local_url(url):
    if not is_real_s3_url(url):
        return url
    url_parsed = urlparse.urlparse(url)
    path = url_parsed.path
    bucket_name, _, key = path.lstrip('/').replace('//', '/').partition('/')
    
    bucket_name = s3_listener.normalize_bucket_name(bucket_name)
    local_url = '%s/%s/%s' % (config.TEST_S3_URL, bucket_name, key)
    return local_url
def fix_hardcoded_creation_date(response):
    search = '<CreationTime>2011-05-23T15:47:44Z</CreationTime>'
    replace = '<CreationTime>%s</CreationTime>' % timestamp()
    response._content = to_str(response._content or '').replace(search, replace)
    response.headers['Content-Length'] = str(len(response._content))
class ProxyListenerCloudFormation(ProxyListener):