9

文字列をフォーマットできるソート可能な日時パターンには2つのタイプがあることがわかります...

  1. SortableDateTimePatternは、日付と時刻の中間にTが付いた値を出力します
  2. UniversalSortableDateTimePatternは、時間の後に最後にZが付いた値を出力します

JSON、XML、または表形式データでのデータ交換などのプロセス間通信に関して、それぞれの意味は何ですか。

2つのうちのいずれかが万が一UTCに自動的に調整されていますか?(一見ではないようです)

この2つに関してMSDNで入手できるドキュメントのレベルが低いことを読みましたが、残念ながら、この質問についての洞察は提供されていません...

4

2 に答える 2

6

UniversalSortableDateTimePatternUTC を使用します。末尾の Z はそのためのものです。

この簡単なサンプルを試してください:

string s = DateTime.Now.ToString(CultureInfo.CurrentCulture.DateTimeFormat.SortableDateTimePattern);
DateTime d = DateTime.Parse(s);

Console.WriteLine(s);
Console.WriteLine(d);

Console.WriteLine();

s = DateTime.Now.ToString(CultureInfo.CurrentCulture.DateTimeFormat.UniversalSortableDateTimePattern);
d = DateTime.Parse(s);

Console.WriteLine(s);
Console.WriteLine(d);

タイムゾーンが UTC+0 でない限り、2 番目のブロックの時刻が異なることに気付くでしょう。

これに関する私の読みは、UniversalSortableDateTimePatternタイムゾーン間で使用する場合に優先することです。

于 2012-11-19T16:12:29.770 に答える
1

SortableDateTimePattern はカルチャに依存し、タイム ゾーン オフセット情報は含まれません。UniversalSortableDateTimePattern はカルチャに依存せず、どのコンピューターでもどこでも同じであり、タイム ゾーン オフセットが含まれます。オフセットは UTC からのものであるため、必要に応じて時刻に加算または減算すると、UTC 時刻が得られます。複数のタイムゾーンや国籍を扱う場合は、通常、UniversalSortableDateTimePattern を使用することをお勧めします。

ただし、時間を常に UTC にしたい場合は、文字列に変換する前に適切なDateTimeプロパティまたはメソッドを使用する方がはるかに簡単です。DateTime.ToUniversalTime メソッド.

于 2012-11-19T16:50:54.543 に答える