<!-- Love localstack? Please consider supporting our collective:
👉  https://opencollective.com/localstack/donate -->

Under utils/common.py, 

TIMESTAMP_FORMAT_MILLIS = '%Y-%m-%dT%H:%M:%S.%fZ'

The %f produces time with microseconds, for example: 2020-03-18T19:43:18.115783Z.


However, when interacting the AWS s3 and sns apis, I receive DateTimes like this:

2020-03-02T22:32:13.240Z
i.e. milliseconds. 

This seems like a simple change to the utils. TIMESTAMP_FORMAT_MILLIS is named as if it should be millis as well. This is seems like a simple change. Is there a reason it should be microseconds?
'body': payload,
            'isBase64Encoded': False,
            'resource': resource_path,
            'httpMethod': method,
            'queryStringParameters': query_string_params,
            'requestContext': request_context,
            'stageVariables': {}  
        }
        return run_lambda(event=event, context={}, func_arn=func_arn)
    except Exception as e:
        LOG.warning('Unable to run Lambda function on API Gateway message: %s %s' % (e, traceback.format_exc()))
def process_sns_notification(func_arn, topic_arn, subscriptionArn, message, message_attributes, subject='',):
    event = {
        'Records': [{
            'EventSource': 'localstack:sns',
            'EventVersion': '1.0',
            'EventSubscriptionArn': subscriptionArn,
            'Sns': {
                'Type': 'Notification',
                'TopicArn': topic_arn,
                'Subject': subject,
                'Message': message,
                'Timestamp': timestamp(format=TIMESTAMP_FORMAT_MILLIS),
                'MessageAttributes': message_attributes
            }
        }]
    }
    return run_lambda(event=event, context={}, func_arn=func_arn, asynchronous=True)
def process_kinesis_records(records, stream_name):
    def chunks(lst, n):