C # односимвольный формат даты

#c# #datetime #tostring

#c# #дата-время #tostring

Вопрос:

Я пытаюсь получить только день или час из объекта DateTime. Однако я сталкиваюсь с проблемой, заключающейся в том, что односимвольные строки dateformat не принимаются, потому что некоторые из них имеют особое значение.

Следующее приводит к сбою системы.FormatException:

 DateTime.Now.ToString("H")
  

Я мог бы обойти это ограничение, добавив любой символ и удалив его с помощью подстроки. Хотя это кажется довольно произвольным:

 DateTime.Now.ToString(" H").Substring(1)
  

Нет ли лучшего способа заставить работать эти односимвольные форматы даты?

Ответ №1:

Вы можете использовать % для определения пользовательского формата, указанного в Документах Microsoft

 //Example
Console.WriteLine(DateTime.Now.ToString("%H"));
  

Ответ №2:

Если вы хотите получить только час вашего объекта DateTime, вы можете получить это с помощью .Hour;

Пример:

 // Create Datetime object
DateTime dateTime = DateTime.Now;

// Get Hour from DateTime object
int hour = dateTime.Hour;
  

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

1. Хотя это и правильно, это не совсем подходит для моего использования, поскольку dateformats предоставляются пользователем в виде строки.