C # — Как вы отображаете Apr ’11 с помощью DateTime.toString

#c# #.net

#c# #.net

Вопрос:

Хорошо, я перепробовал все, чтобы отобразить дату в формате Apr ’11 с DateTime ToString помощью метода. В документации указано ' , что зарезервировано для строкового литерала, поэтому я бы подумал, чтобы отобразить один апостроф, который я бы использовал ''' — однако, нет. Вот что я пробовал до сих пор:

 taskdata.Month.Start.ToString("MMM 'yy")
A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
taskdata.Month.Start.ToString("MMM ''yy")
"Apr 09"
taskdata.Month.Start.ToString("MMM '''yy")
A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
taskdata.Month.Start.ToString("MMM ''''yy")
"Apr 09"
taskdata.Month.Start.ToString("MMM 'yy")
A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
taskdata.Month.Start.ToString("MMM '''yy")
A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
  

Серьезно, в чем секрет? Я отказываюсь объединять!

Комментарии:

1. Я отказываюсь объединять! а почему бы и нет? Зачем тратить время на то, что вы могли бы просто реализовать самостоятельно и покончить с этим?

2. Вы когда-нибудь унаследовали код и сказали: «Почему они сделали это так, а не простым способом, очевидно, что этот человек не умеет кодировать». Да, я не хочу быть «этим человеком» в будущем.

3. @EdS. Чтобы написать лучший код. Чтобы узнать что-то новое. Чтобы выполнить задачу (хм, попросив других, потерпите неудачу :).

4. Эй, я бы понял это в конце концов.. вероятно.

5. @Otiel: Согласен. Я не понимал, что это была просто проблема с экранированием символов, читайте слишком быстро.

Ответ №1:

Вам нужно выполнить escape (фактически, двойной escape):

 new DateTime(2011, 10, 1).ToString("MMM \'yy")
  

Комментарии:

1. Обратите внимание, что если вы используете дословный строковый литерал, вам не нужно двойное экранирование : @"MMM 'yy" .

Ответ №2:

 String.Format(@"{0:MMM  'yy}", DateTime.Now)
  

Сработало для меня