Repository: pynamodb/PynamoDB

Issue:
Incostistent log and documentation. 
https://github.com/pynamodb/PynamoDB/blob/b3330a43ee8f9c203a32834f080dde42ab4cf8c7/pynamodb/attributes.py#L886

expected format is %Y-%m-%dT%H:%M:%S.%f+0000 (seen here https://github.com/pynamodb/PynamoDB/blob/b3330a43ee8f9c203a32834f080dde42ab4cf8c7/pynamodb/attributes.py#L882-L886 )
but logs and documentation show that required format is %Y-%m-%dT%H:%M:%S.%fZ



Discussion:
ikonst: @anandswaminathan the serialization code is `value.astimezone(timezone.utc).strftime(DATETIME_FORMAT)` so I think `%z` would always become `"+0000"`

Patch:
diff --git a/pynamodb/constants.py b/pynamodb/constants.py
index 8ffa832..390aa63 100644
--- a/pynamodb/constants.py
+++ b/pynamodb/constants.py
@@ -97,7 +97,7 @@ AVAILABLE_BILLING_MODES = [PROVISIONED_BILLING_MODE, PAY_PER_REQUEST_BILLING_MOD
 
 # Defaults
 DEFAULT_ENCODING = 'utf-8'
-DATETIME_FORMAT = '%Y-%m-%dT%H:%M:%S.%f%z'
+DATETIME_FORMAT = '%Y-%m-%dT%H:%M:%S.%f+0000'
 SERVICE_NAME = 'dynamodb'
 HTTP_OK = 200
 HTTP_BAD_REQUEST = 400


Test patch:
diff --git a/tests/test_attributes.py b/tests/test_attributes.py
index d706314..c62301e 100644
--- a/tests/test_attributes.py
+++ b/tests/test_attributes.py
@@ -204,7 +204,7 @@ class TestUTCDateTimeAttribute:
         ]
     )
     def test_utc_date_time_invalid(self, invalid_string):
-        with pytest.raises(ValueError, match="does not match format"):
+        with pytest.raises(ValueError, match=r"does not match format '%Y-%m-%dT%H:%M:%S.%f\+0000'"):
             self.attr.deserialize(invalid_string)