Что означает одиночная кавычка в формате даты и времени С#?

У нас есть например эта константа в С#:

System.Globalization.DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern

Это имеет значение:

"yyyy'-'MM'-'dd'T'HH':'mm':'ss"

Я использую его в функции ParseExact, а затем yyyy-MM-ddTHH:mm:ss также работает.

Я не могу понять, для чего одиночные кавычки.

Ответы

Ответ 1

Это буквенный разделитель строк.

Все, что находится в одинарных кавычках, интерпретируется как буквенный символ и не будет интерпретироваться как строка пользовательского формата.

Они эквивалентны экранированию с использованием обратной косой черты: dd'T'HH совпадает с dd\THH.

В вашей строке yyyy'-'MM'-'dd'T'HH':'mm':'ss кавычки не нужны вокруг - и T, так как они не являются строками нестандартного формата и поэтому всегда будут интерпретироваться как строковые литералы. Однако : является спецификатором формата, который оценивает разделитель времени, который подходит для текущей культуры. Цитирование ':' означает, что буквальный символ : будет использоваться всегда, независимо от текущей культуры.