Вы можете указать пользовательский формат для объекта DateTime
следующим образом:
DateTime.Now.ToString("HH:mm:ss"); // 19:55:23
Но когда я пытаюсь использовать тот же формат для объекта TimeSpan
, как это:
DateTime.Now.TimeOfDay.ToString("HH:mm:ss");
Я получаю исключение "Input string was not in a correct format."
.
Оказывается, решение состоит в том, что вам нужно избежать символов ':'
, как в "HH\\:mm\\:ss"
. Обратите внимание, что существует двойная обратная косая черта, потому что если вы укажете только одну, она сломает строку, поэтому вам тоже нужно будет ее избежать.
Вопрос в том, почему разработчики .NET Framework сделали это так? Должна быть причина. Почему мы не можем использовать специальные спецификаторы формата, не избегая их, как мы можем, с объектом DateTime
?
Ищем гуру .NET, чтобы пролить свет на эту тему.