10

DateTime.ToString に関する MSDN によると、ToString("s") は常に並べ替え可能な XML スキーマ スタイルの書式設定で文字列を返す必要があります。

Reflector では、DateTimeFormatInfo 内でこのパターンにたどり着きました。

public string SortableDateTimePattern
{
      get
      {
            return "yyyy'-'MM'-'dd'T'HH':'mm':'ss";
      }
}

DateTime.ToString("s") は常にこの形式の文字列を返しますか?
文化、地域を問わず...


はい、それ
をテストするコードを実行します

var dateTime = DateTime.Now;
var originialString = dateTime.ToString("s");
string testString;

foreach (var c in System.Globalization.CultureInfo.GetCultures(CultureTypes.AllCultures))
{
    Thread.CurrentThread.CurrentUICulture = c;
    if (c.IsNeutralCulture == false)
    {
        Thread.CurrentThread.CurrentCulture = c;
    }

    testString = dateTime.ToString("s");
    Console.WriteLine("{0} ", testString);
    if (originialString != testString)
    {
        throw new ApplicationException(string.Format("ToString(s) is returning something different for {0} " , c));
    }
}
4

2 に答える 2

18

はい、そうです。他の人が言ったように、数値と文字列リテラル (「T」や「:」など) のみが含まれており、地域やカルチャの設定によって変更されるものは何もありません。

于 2009-06-29T12:25:51.943 に答える
12

うん。そのパターンを分解すると、それは数値プロパティのみであり、そこには月や日の名前などへの参照はありません。

yyyy - 4 桁の日付
MM - 2 桁の月、先行ゼロ付き
dd - 2 桁の日、先行ゼロ付き
T - リテラル T
HH - 2 桁の時間、先行ゼロ付き、24 時間形式
mm - 2 桁の分、先行ゼロ付き
ss - 先行ゼロ付きの 2 桁の秒

于 2009-06-29T12:32:50.213 に答える