diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 7d8460c..0dd9a2e 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -2270,6 +2270,9 @@
         generalized_time = self._ffi.gc(
             generalized_time, self._lib.ASN1_GENERALIZEDTIME_free
         )
+        return self._parse_asn1_generalized_time(generalized_time)
+
+    def _parse_asn1_generalized_time(self, generalized_time):
         time = self._asn1_string_to_ascii(
             self._ffi.cast("ASN1_STRING *", generalized_time)
         )
diff --git a/src/cryptography/hazmat/backends/openssl/x509.py b/src/cryptography/hazmat/backends/openssl/x509.py
index 1376ab7..49d895b 100644
--- a/src/cryptography/hazmat/backends/openssl/x509.py
+++ b/src/cryptography/hazmat/backends/openssl/x509.py
@@ -712,13 +712,8 @@
     generalized_time = backend._ffi.gc(
         generalized_time, backend._lib.ASN1_GENERALIZEDTIME_free
     )
-    time = backend._ffi.string(
-        backend._lib.ASN1_STRING_data(
-            backend._ffi.cast("ASN1_STRING *", generalized_time)
-        )
-    ).decode("ascii")
     return x509.InvalidityDate(
-        datetime.datetime.strptime(time, "%Y%m%d%H%M%SZ")
+        backend._parse_asn1_generalized_time(generalized_time)
     )
 
 
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index bfa94ec..f802300 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -972,9 +972,7 @@
         )
         exts = cert.extensions
         assert exts[-1] == exts[7]
-        assert len(exts[3:5]) == 2
-        assert exts[2:4][0] == exts[2]
-        assert exts[2:4][1] == exts[3]
+        assert exts[2:6:2] == [exts[2], exts[4]]
 
     def test_one_extension_get_for_class(self, backend):
         cert = _load_cert(
@@ -1506,9 +1504,7 @@
             x509.UniformResourceIdentifier(u"http://another.local"),
         ])
         assert gn[-1] == gn[4]
-        assert len(gn[1:3]) == 2
-        assert gn[2:4][0] == gn[2]
-        assert gn[2:5:2][1] == gn[4]
+        assert gn[2:6:2] == [gn[2], gn[4]]
 
     def test_invalid_general_names(self):
         with pytest.raises(TypeError):
@@ -1673,9 +1669,7 @@
             x509.UniformResourceIdentifier(u"http://another.local"),
         ])
         assert san[-1] == san[4]
-        assert len(san[1:3]) == 2
-        assert san[2:4][0] == san[2]
-        assert san[2:5:2][1] == san[4]
+        assert san[2:6:2] == [san[2], san[4]]
 
     def test_invalid_general_names(self):
         with pytest.raises(TypeError):
