# Type of request: This is a bug report

# Detailed description
S3 list buckets returns a different format for CreationDate than the one expected by the Java SDK and parsing fails. Using Java SDK 2.13.39. Also verified w/ .40, .38, .30 and .20. Will check previous Docker releases for localstack.

``Unable to unmarshall response (Text '2020-06-17T15:26:46.032838+00:00' could not be parsed at index 19). Response Code: 200, Response Text: 
software.amazon.awssdk.core.exception.SdkClientException: Unable to unmarshall response (Text '2020-06-17T15:26:46.032838+00:00' could not be parsed at index 19). Response Code: 200, Response Text: <truncated...>
``

## Expected behavior
Return CreationDate in same format as the actual S3 API call.

## Actual behavior
Returns CreationDate in slightly different format from the actual S3 API call. Fractional seconds are included.

# Steps to reproduce
Run "aws s3api list-buckets" vs "aws s3api list-buckets --endpoint-url http://localstack:4566" and note different date format for CreationDate.

## Command used to start LocalStack
docker-compose:
```
  localstack:
    image: localstack/localstack
    ports:
      - '4566:4566'
    environment:
      SERVICES: s3
      DEBUG: 1
```
## Client code (AWS SDK code snippet, or sequence of "awslocal" commands)
See steps to reproduce.
if query == 'notification' or 'notification' in query_map:
            
            response = handle_notification_request(bucket, method, data)
            return response
        
        if method == 'GET' and 'Expires' in query_map:
            if is_url_already_expired(query_map.get('Expires')[0]):
                return token_expired_error(path, headers.get('x-amz-request-id'), 400)
        
        if method == 'POST':
            policy_key, policy_value = multipart_content.find_multipart_key_value(data, headers, 'policy')
            if policy_key and policy_value:
                policy = json.loads(base64.b64decode(policy_value).decode('utf-8'))
                expiration_string = policy.get('expiration', None)  
                if expiration_string:
                    expiration_datetime = datetime.datetime.strptime(expiration_string, POLICY_EXPIRATION_FORMAT)
                    expiration_timestamp = expiration_datetime.timestamp()
                    if is_url_already_expired(expiration_timestamp):
                        return token_expired_error(path, headers.get('x-amz-request-id'), 400)
        if query == 'cors' or 'cors' in query_map:
            if method == 'GET':
                return get_cors(bucket)
            if method == 'PUT':
                return set_cors(bucket, data)
            if method == 'DELETE':
                return delete_cors(bucket)
        if query == 'lifecycle' or 'lifecycle' in query_map:
            if method == 'GET':
                return get_lifecycle(bucket)
            if method == 'PUT':