Эта строка соответствует стандарту, за исключением последнего 0
.
"Z" обозначает Всемирное координированное время (UT C). После него не должно быть номера, так что вы можете спокойно проигнорировать лишние 0.
var dateStr = "2020-01-16T14:29:17.9743131Z0";
var pos = dateStr.IndexOf('Z');
if (pos != -1 && pos < dateStr.Length - 1)
dateStr = dateStr.Remove(pos + 1);
var date = DateTime.Parse(dateStr);