Исключение формата - DateTime и часы

Я хочу получить часы до даты и времени. Таким образом, если это будет 13:00, то это просто будет 1, если это будет 22:00, то это будет 10. Так никакой начальный нуль, чтобы быть местом на часах 1-9

Таким образом, я пытался сделать это

DateTime test= DateTime.Now;
Console.WriteLine(test.ToString("h"));

Я получаю это

Система. FormatException был не обработан
Строка Message=Input не была в правильном формате. Source=mscorlib
StackTrace: в System. DateTimeFormat. GetRealFormat (Формат строки, DateTimeFormatInfo dtfi) в System. DateTimeFormat. ExpandPredefinedFormat (Формат строки, дата и время DateTime&, DateTimeFormatInfo& dtfi, смещение TimeSpan&) в System. DateTimeFormat. Формат (Дата и время DateTime, Формат строки, DateTimeFormatInfo dtfi, TimeSpan смещают) в System. DateTimeFormat. Формат (Дата и время DateTime, Формат строки, DateTimeFormatInfo dtfi) в System. DateTime. ToString (Формат строки) в ConsoleApplication1. Программа. Основной (Строка [] args) в C:\Users\chobo2\Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs:line 21 в System. AppDomain. _ nExecuteAssembly (блок RuntimeAssembly, Строка [] args) в System. AppDomain. ExecuteAssembly (Представляют assemblyFile в виде строки, Доказательство assemblySecurity, Строка [] args) в Microsoft. VisualStudio. HostingProcess. HostProc. RunUsersAssembly () в Системе. Поточная обработка. ThreadHelper. ThreadStart_Context (Объектное состояние) в System. Поточная обработка. ExecutionContext. Выполненный (ExecutionContext executionContext, обратный вызов ContextCallback, Объектное состояние, булевская переменная ignoreSyncCtx) в System. Поточная обработка. ExecutionContext. Выполненный (ExecutionContext executionContext, обратный вызов ContextCallback, Объектное состояние) в System. Поточная обработка. ThreadHelper. ThreadStart () InnerException:

6
задан chobo2 20 June 2010 в 20:35
поделиться

1 ответ

Из MSDN (описатель настраиваемого формата «h»):

Если описатель формата «h» используется без других описателей настраиваемого формата, он интерпретируется как описатель стандартного формата даты и времени. и выдает исключение FormatException. Дополнительные сведения об использовании одного описателя формата см. В разделе Использование одного описателя настраиваемого формата далее в этом разделе.

Вы можете использовать следующее (, как описано в «Использование одиночных спецификаторов настраиваемого формата)»:

Для использования любого из описателей настраиваемого формата даты и времени в качестве единственного спецификатора в строке формата ( то есть использовать «d», «f», «F», «g», «h», «H», «K», «m», «M», «s», «t», "y", "z", ":" или "/" описатель настраиваемого формата отдельно), включать пробел до или после указателя или включать указатель формата процента ("%") перед единственной настраиваемой датой и временем спецификатор.

Итак, вы можете сделать следующее:

DateTime test= DateTime.Now;
Console.WriteLine(test.ToString("{0:%h}")); // From the document, adds precision
Console.WriteLine(test.ToString("%h")); // Will also work
14
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: