|
36 | 36 | """
|
37 | 37 |
|
38 | 38 | import base64
|
| 39 | +import datetime |
39 | 40 |
|
40 |
| -from google.cloud._helpers import _rfc3339_to_datetime |
| 41 | +import pytz |
| 42 | + |
| 43 | +from google.api_core import datetime_helpers |
41 | 44 | from google.cloud.exceptions import NotFound
|
42 | 45 | from google.cloud.runtimeconfig._helpers import variable_name_from_full_name
|
43 | 46 |
|
@@ -151,13 +154,28 @@ def update_time(self):
|
151 | 154 | See
|
152 | 155 | https://cloud.google.com/deployment-manager/runtime-configurator/reference/rest/v1beta1/projects.configs.variables
|
153 | 156 |
|
154 |
| - :rtype: :class:`datetime.datetime` or ``NoneType`` |
155 |
| - :returns: Datetime object parsed from RFC3339 valid timestamp, or |
156 |
| - ``None`` if the property is not set locally. |
| 157 | + Returns: |
| 158 | + :class:`~api_core.datetime_helpers.DatetimeWithNanoseconds`, |
| 159 | + :class:`datetime.datetime` or ``NoneType``: |
| 160 | + Datetime object parsed from RFC3339 valid timestamp, or |
| 161 | + ``None`` if the property is not set locally. |
| 162 | +
|
| 163 | + Raises: |
| 164 | + ValueError: if value is not a valid RFC3339 timestamp |
157 | 165 | """
|
158 | 166 | value = self._properties.get('updateTime')
|
159 | 167 | if value is not None:
|
160 |
| - value = _rfc3339_to_datetime(value) |
| 168 | + try: |
| 169 | + value = datetime.datetime.strptime( |
| 170 | + value, datetime_helpers._RFC3339_MICROS) |
| 171 | + except ValueError: |
| 172 | + DatetimeNS = datetime_helpers.DatetimeWithNanoseconds |
| 173 | + value = DatetimeNS.from_rfc3339(value) |
| 174 | + naive = ( |
| 175 | + value.tzinfo is None |
| 176 | + or value.tzinfo.utcoffset(value) is None) |
| 177 | + if naive: |
| 178 | + value = pytz.utc.localize(value) |
161 | 179 | return value
|
162 | 180 |
|
163 | 181 | def _require_client(self, client):
|
|
0 commit comments