Sorry: had to edit this a lot as I had the wrong cause orginally.
The ParseIso method gets the wrong date if there is no : between the hours and minutes in the timezone
e.g. ParseIso("2024-03-11T17:40:00.000+0800") gives 07/02/2024 09:00:40
ParseIso("2024-03-11T17:40:00.000+08:00") gives the correct value 11/03/2024 09:40:00