Skip to content

Commit 6048bd2

Browse files
author
Jorilla Abdullaev
committed
fix: use dateutil for parsing datetime strings properly
1 parent ad9553e commit 6048bd2

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

azure_iot_hub_api/models.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from datetime import datetime
2+
from dateutil import parser as datetime_parser
23

34

45
class Device:
@@ -42,13 +43,13 @@ def from_dictionary(device_dictionary: dict) -> 'Device':
4243
connection_state = device_dictionary.get("connectionState")
4344
status = device_dictionary.get("status")
4445
status_reason = device_dictionary.get("statusReason")
45-
connection_state_updated_time = datetime.fromisoformat(
46+
connection_state_updated_time = datetime_parser.parse(
4647
device_dictionary.get('connectionStateUpdatedTime') or "0001-01-01T00:00:00.000-00:00"
4748
)
48-
status_updated_time = datetime.fromisoformat(
49+
status_updated_time = datetime_parser.parse(
4950
device_dictionary.get("statusUpdatedTime") or "0001-01-01T00:00:00.000-00:00"
5051
)
51-
last_activity_time = datetime.fromisoformat(
52+
last_activity_time = datetime_parser.parse(
5253
device_dictionary.get('lastActivityTime') or "0001-01-01T00:00:00.000-00:00"
5354
)
5455
cloud_to_device_message_count = device_dictionary.get("cloudToDeviceMessageCount")
@@ -164,9 +165,9 @@ def from_dictionary(twin_dictionary: dict) -> 'Twin':
164165
device_etag = twin_dictionary.get("deviceEtag")
165166
status = twin_dictionary.get("status")
166167
status_reason = twin_dictionary.get("statusReason")
167-
status_update_time = datetime.fromisoformat(twin_dictionary.get("statusUpdateTime"))
168+
status_update_time = datetime_parser.parse(twin_dictionary.get("statusUpdateTime"))
168169
connection_state = twin_dictionary.get("connectionState")
169-
last_activity_time = datetime.fromisoformat(twin_dictionary.get("lastActivityTime"))
170+
last_activity_time = datetime_parser.parse(twin_dictionary.get("lastActivityTime"))
170171
cloud_to_device_message_count = twin_dictionary.get("cloudToDeviceMessageCount")
171172
authentication_type = twin_dictionary.get("authenticationType")
172173
x509_thumbprint = twin_dictionary.get("x509Thumbprint")

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
)
2121

2222
install_requires = [
23-
'azure-cli'
23+
'azure-cli',
24+
'python-dateutil'
2425
]
2526

2627
if __name__ == '__main__':

0 commit comments

Comments
 (0)