Ответ 1
Из "M"
Спецификатор специальных форматов
Если спецификатор формата "M" используется без другого настраиваемого формата спецификаторы, он интерпретируется как стандартный формат даты и времени
"M"
Спецификатор. Для получения дополнительной информации об использовании спецификатора одиночного формата, см. Использование спецификаций отдельных пользовательских форматов далее в этом разделе.
Из Использование отдельных спецификаторов пользовательского формата
Пользовательская строка формата даты и времени состоит из двух или более персонажи. Методы форматирования даты и времени интерпретируют любые односимвольная строка как стандартная строка формата даты и времени. Если они не распознают символ как допустимый спецификатор формата, они бросьте a
FormatException
. Например, строка формата, которая состоит из только спецификатор "h" интерпретируется как стандартная дата и время формат. Однако в данном конкретном случае исключение выбрано, потому что нет стандартного формата даты и времени "h" Спецификатор.Использовать любые пользовательские спецификаторы формата даты и времени как единственные спецификатор в строке формата (то есть для использования "d", "f", "F", "g", "h" , "H", "K", "m", "M" , "s", "t", "y", "z", ":" или "/" Пользовательский формат спецификатор сам по себе), включает пробел до или после спецификатора, или включить спецификатор формата процента ( "%" ) перед одним пользовательским спецификатор даты и времени.
Вот почему вы можете использовать один из них:
Console.WriteLine(DateTime.Now.ToString(" M")); // 7
Console.WriteLine(DateTime.Now.ToString("M ")); //7
Console.WriteLine(DateTime.Now.ToString("%M")); //7