ラウンドトリップ( "O"、 "o")フォーマット指定子を使用しないのはなぜですか?
「O」または「o」標準フォーマット指定子は、タイムゾーン情報を保持し、ISO 8601に準拠した結果文字列を出力するパターンを使用して、カスタムの日付と時刻のフォーマット文字列を表します。DateTime値の場合、このフォーマット指定子は日付を保持するように設計されています。および時間値とテキストのDateTime.Kindプロパティ。スタイルパラメータがDateTimeStyles.RoundtripKindに設定されている場合は、DateTime.Parse(String、IFormatProvider、DateTimeStyles)またはDateTime.ParseExactメソッドを使用して、フォーマットされた文字列を解析して戻すことができます。
「O」または「o」標準フォーマット指定子は、DateTime値の「yyyy」-「MM」-「dd」T「HH」:「mm」:「ss」。「fffffffK」カスタムフォーマット文字列に対応します。 "yyyy'- 'MM'-' dd'T'HH ':' mm ':' ss '。' ffffffffzzz" DateTimeOffset値のカスタムフォーマット文字列。この文字列では、ハイフン、コロン、文字「T」などの個々の文字を区切る一重引用符のペアは、個々の文字が変更できないリテラルであることを示しています。アポストロフィは出力文字列に表示されません。
O "または" o "標準フォーマット指定子(および" yyyy'- 'MM'-' dd'T'HH ':' mm ':' ss '。' fffffffK "カスタムフォーマット文字列)は、3つの方法を利用します。 ISO 8601は、DateTime値のKindプロパティを保持するためのタイムゾーン情報を表します。
public class Example
{
public static void Main()
{
DateTime dat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Unspecified);
Console.WriteLine("{0} ({1}) --> {0:O}", dat, dat.Kind);
DateTime uDat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Utc);
Console.WriteLine("{0} ({1}) --> {0:O}", uDat, uDat.Kind);
DateTime lDat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Local);
Console.WriteLine("{0} ({1}) --> {0:O}\n", lDat, lDat.Kind);
DateTimeOffset dto = new DateTimeOffset(lDat);
Console.WriteLine("{0} --> {0:O}", dto);
}
}