質問お願いいたします。

カスタム日時書式指定文字列を使って、
例えば DateTime.Now.ToString("M月") と書けば、
今なら "2月" という文字列が受け取れます。

しかし、DateTime.Now.ToString("M") と書いても
"2" という文字列ではなく "2月1日" という文字列が返ってきてしまいます。

これは "M" という文字列が(カスタムでなく)標準の日時書式指定文字列と
解釈されてしまっているからのようなのですが、
DateTime.Now.ToString(...) のような書き方で
"2" という文字列を受け取ることは可能でしょうか。

もちろん DateTime.Now.Month.ToString() と書けば
"2" を得ることはできますが、IFormattable インターフェース経由で
文字列を取得したいという事情があり、
Month プロパティを使う方法は避けたいと考えております。

もし何かおわかりのことがあればご教授いただけると幸いです。
どうぞよろしくお願いいたします。