Вы пытаетесь разобрать эту строку:
"2018/06/30 23:00"
Указание этого формата:
"yyyy-MM-dd'T'HH:mm:sszzz"
Этот формат не соответствует этой строке, поэтому анализ не выполняется. Разбор по формату, в котором находится ввод:
var properStart = DateTimeOffset.ParseExact(startdate, "yyyy/MM/dd HH:mm",
CultureInfo.InvariantCulture)
Затем выведите в нужный вам формат:
var properStartOutput = properStart.ToString("yyyy-MM-dd'T'HH:mm:sszzz");
Или, если вы действительно хотите все это в одну строку:
var properStart = DateTimeOffset.ParseExact(startdate, "yyyy/MM/dd HH:mm",
CultureInfo.InvariantCulture).ToString("yyyy-MM-dd'T'HH:mm:sszzz").
Дело в том, что синтаксический анализ ввода и форматирование вывода - это две разные операции.