<!-- 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?
{'filter': [{'numeric': ['>', 0, '<=', 150]}]},
                {'filter': {'Type': 'Number', 'Value': -1}},
                False
            ),
            (
                'multiple conditions on an array',
                {'filter': ['test1', 'test2', {'prefix': 'som'}]},
                {'filter': {'Type': 'String.Array', 'Value': "['anything', 'something']"}},
                True
            )
        ]
        for test in test_data:
            test_name = test[0]
            filter_policy = test[1]
            attributes = test[2]
            expected = test[3]
            self.assertEqual(sns_listener.check_filter_policy(filter_policy, attributes), expected, test_name)
    def test_is_raw_message_delivery(self):
        valid_true_values = ['true', 'True', True]
        for true_value in valid_true_values:
            self.subscriber['RawMessageDelivery'] = true_value
            self.assertTrue(sns_listener.is_raw_message_delivery(self.subscriber))
    def test_is_not_raw_message_delivery(self):
        invalid_values = ['false', 'False', False, 'somevalue', '']
        for invalid_values in invalid_values:
            self.subscriber['RawMessageDelivery'] = invalid_values
            self.assertFalse(sns_listener.is_raw_message_delivery(self.subscriber))
        del self.subscriber['RawMessageDelivery']
        self.assertFalse(sns_listener.is_raw_message_delivery(self.subscriber))