たとえば、C#には次の定数があります。
System.Globalization.DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern
次の値があります。
"yyyy'-'MM'-'dd'T'HH':'mm':'ss"
私はそれをParseExact
関数で使用し、その後も機能yyyy-MM-ddTHH:mm:ss
します。
一重引用符の目的がわかりません。
たとえば、C#には次の定数があります。
System.Globalization.DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern
次の値があります。
"yyyy'-'MM'-'dd'T'HH':'mm':'ss"
私はそれをParseExact
関数で使用し、その後も機能yyyy-MM-ddTHH:mm:ss
します。
一重引用符の目的がわかりません。
回答:
これはリテラル文字列区切り文字です。
一重引用符で囲まれたものはすべてリテラル文字として解釈され、カスタムフォーマット文字列として解釈されません。
これらは、バックスラッシュを使用してエスケープすることに相当します。はとdd'T'HH
同じdd\THH
です。
string yyyy'-'MM'-'dd'T'HH':'mm':'ss
では、-
andを囲む引用符は不要T
です。これらはカスタム形式の文字列ではないため、常に文字列リテラルとして解釈されます。ただし、現在のカルチャに適した時間区切り文字として評価される:
形式指定子です。これを引用すると、現在の文化に関係なく':'
、リテラル文字:
が常に使用されることになります。
これがWindowsのGetDateFormat関数で使用される形式と同じであることを知っておくと便利です。アポストロフィを使用して、結果の文字列に挿入するリテラルを示します。
文字列フォーマットコードの詳細については、以下を参照してください。
文字列では、文字どおりハイフン、コロン、およびT文字を追加する必要があることを示しています。
yyyy
'-'
MM'-'
dd'T'
HH':'
mm':'
ss
一般に、文字通りハイフン(-
)またはコロン(:
)、またはスラッシュ(/
)を使用して日付/時刻を作成することは望ましくありません。スラッシュとコロンを使用して日付/時刻を構築しない文化では、これらは間違っているからです。
指示したい場合に何をしたいか:
特別な使用です:
そして、次のようなフォーマットを作成します。
dd / yyyy / MM ss:HH:mm
日付を次のように示す必要のあるビジネスニーズがわかりません。
しかし、このようにしてローカライザはカルチャの正しい日付と時刻のセパレータを挿入します。
一方、あなたがあれば文字通りを求め/
、-
または:
:
'/'
yyyy '/'
MM ss ':'
HH ':'
mmあなたは文字通り得るでしょう:
のではなく:
GetDateFormat
。おそらく似ていますが、たとえばの意味yyyyy
が異なります。この質問が注目を集め、C#/に関するものであることを考えると、代わりにこのステートメントを修正して.NETドキュメントにリンクすることをお勧めします。