Стоит отметить, что префикс% необходим для любой односимвольной строки формата при использовании метода DateTime.ToString(string)
, даже если эта строка не представляет один из встроенных шаблонов строки формата; Я столкнулся с этой проблемой при попытке получить текущий час. Например, фрагмент кода:
DateTime.Now.ToString("h")
бросит FormatException
. Изменяя выше, чтобы:
DateTime.Now.ToString("%h")
указывает час текущей даты.
Я могу только предположить, что метод просматривает длину строки формата и решает, представляет ли она строку встроенного или пользовательского формата.