Вы можете сделать то же самое, что делает Facebook, просто добавив отступы вокруг. Это не так хорошо, как хотелось бы, но выглядит достаточно хорошо.
string txt= "2009-10-08 08:22:02Z";
DateTime output = DateTime.ParseExact(txt, "u", System.Globalization.CultureInfo.InvariantCulture);
Класс DateTime поддерживает строку стандартного формата u для этого формата
Я думаю, что для формата ISO (с разделителем T) используйте вместо этого "s" из "u". Или используйте:
string txt= "2009-10-08 08:22:02Z";
DateTime output = DateTime.ParseExact(txt, new string[] {"s", "u"}, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
для поддержки обоих форматов.
Нет, это не ISO 8601. Действительное представление ISO 8601 должно иметь T
между частями времени и даты.
DateTime
может изначально обрабатывать допустимые форматы ISO 8601. Однако, если вы застряли с этим конкретным представлением, вы можете попробовать DateTime.ParseExact
и указать строку формата.