And, for completeness, to go back the other way:
def custom_replace_func2(m): secs_as_str = m.group(0)[0:10] msecs_as_str = m.group(0)[10:13] secs_as_float = float(secs_as_str) + (float(msecs_as_str) / 1000.0) dt_from_utc_epoch = dt.utcfromtimestamp(secs_as_float) return dt_from_utc_epoch.strftime('%Y/%m/%d %H:%M:%S.%f')[:-3] editor.rereplace(r'^\d{13}(?=A)', custom_replace_func2)Will take:
1674125098362A 1674125099365A 1674125105998A 1674125217380A 1674207312267A 1674207863334Aand produce:
2023/01/19 10:44:58.362A 2023/01/19 10:44:59.365A 2023/01/19 10:45:05.998A 2023/01/19 10:46:57.038A 2023/01/20 09:35:12.267A 2023/01/20 09:44:23.334A