|
36 | 36 | from __future__ import annotations |
37 | 37 | from pathlib import Path |
38 | 38 | import json |
| 39 | +import datetime |
39 | 40 |
|
40 | 41 | import numpy as np |
41 | 42 |
|
@@ -218,7 +219,25 @@ def _parse_header(self): |
218 | 219 | # Add the minimum annotations |
219 | 220 | self._generate_minimal_annotations() |
220 | 221 |
|
221 | | - self.header['rec_datetime'] = self.metadata['status']['start_time'] |
| 222 | + # date comes out as: |
| 223 | + # year-month-daydayofweektime all as a string so we need to prep it for |
| 224 | + # entering into datetime |
| 225 | + # example: '2024-07-01T13:04:49.4972245-04:00' |
| 226 | + stringified_date_list = self.metadata['status']['start_time'].split('-') |
| 227 | + year = int(stringified_date_list[0]) |
| 228 | + month = int(stringified_date_list[1]) |
| 229 | + day = int(stringified_date_list[2][:2]) # day should be first two digits of the third item in list |
| 230 | + time_info = stringified_date_list[2].split(':') |
| 231 | + hour = int(time_info[0][-2:]) |
| 232 | + minute = int(time_info[1]) |
| 233 | + second = int(time_info[2]) |
| 234 | + microsecond = 1000 * 1000 * (float(time_info[2]) - second) # second -> micro is 1000 * 1000 |
| 235 | + |
| 236 | + rec_datetime = datetime.datetime(year, month, day, hour, minute, second, microsecond) |
| 237 | + bl_annotations = self.raw_annotations["blocks"][0] |
| 238 | + seg_annotations = bl_annotations["segments"][0] |
| 239 | + for d in (bl_annotations, seg_annotations): |
| 240 | + d["rec_datetime"] = rec_datetime |
222 | 241 |
|
223 | 242 | def _get_signal_size(self, block_index, seg_index, stream_index): |
224 | 243 |
|
|
0 commit comments