情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DateTime.ToString メソッド (IFormatProvider)

2013/12/12

指定したカルチャ固有の書式情報を使用して、現在の DateTime オブジェクトの値をそれと等価な文字列形式に変換します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public string ToString(
	IFormatProvider provider
)

パラメーター

provider
型: System.IFormatProvider
カルチャ固有の形式情報を提供するオブジェクト。

戻り値

型: System.String
provider パラメーターで指定された、現在の DateTime オブジェクトの値の文字列表現。

実装

IConvertible.ToString(IFormatProvider)

例外条件
ArgumentOutOfRangeException

日付と時刻が、provider で使用されるカレンダーでサポートされている日付の範囲外です。

現在の DateTime オブジェクトの値は、日付と時刻の汎用書式指定子 ('G') を使用して書式設定されます。この書式指定子は、短い日付形式のパターンと長い時刻形式のパターンを使用して出力を書式設定します。

短い日付形式と長い時刻形式の各パターンの書式は、provider パラメーターによって定義されます。provider パラメーターは、次のいずれかの値になります。

providernull の場合は、現在のカルチャと関連付けられた DateTimeFormatInfo オブジェクトが使用されます。詳細については、CultureInfo.CurrentCulture を参照してください。

バージョンについてのメモ

Windows Phone

Windows Phone では、ロシア語の日付の正しい文字列が返されません。たとえば、15.июня.2000 ではなく、15.Июнь.2000 が返されます。

呼び出し時の注意

ToString(IFormatProvider) メソッドは、provider パラメーターで表されるカルチャで使用されるカレンダーの日付と時刻を表す文字列を返します。そのカレンダーは、Calendar プロパティで定義されます。現在の DateTime インスタンスの値が Calendar.MinSupportedDateTime より前、または Calendar.MaxSupportedDateTime より後の場合、メソッドにより ArgumentOutOfRangeException がスローされます。具体的な例を次に示します。これは、JapaneseCalendar クラスの範囲外の日付の書式を設定しようとします。


using System;
using System.Globalization;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      CultureInfo jaJP = new CultureInfo("ja-JP");
      jaJP.DateTimeFormat.Calendar = new JapaneseCalendar();
      DateTime date1 = new DateTime(1867, 1, 1);

      try
      {
         outputBlock.Text += date1.ToString(jaJP) + "\n";
      }
      catch (ArgumentOutOfRangeException)
      {
         outputBlock.Text += String.Format("{0:d} is earlier than {1:d} or later than {2:d}",
                           date1,
                           jaJP.DateTimeFormat.Calendar.MinSupportedDateTime,
                           jaJP.DateTimeFormat.Calendar.MaxSupportedDateTime) + "\n";
      }
   }
}
// The example displays the following output:
//    1/1/1867 is earlier than 9/8/1868 or later than 12/31/9999   }


次の例では、5 つの異なるカルチャを表す CultureInfo オブジェクトを使用して、文字列形式の日付と時刻を表示します。


using System;
using System.Globalization;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      CultureInfo[] cultures = new CultureInfo[] {CultureInfo.InvariantCulture, 
                                                  new CultureInfo("en-us"), 
                                                  new CultureInfo("fr-fr"), 
                                                  new CultureInfo("de-DE"), 
                                                  new CultureInfo("es-ES"),
                                                  new CultureInfo("ja-JP")};

      DateTime thisDate = new DateTime(2009, 5, 1, 9, 0, 0);

      foreach (CultureInfo culture in cultures)
      {
         string cultureName;
         if (string.IsNullOrEmpty(culture.Name))
            cultureName = culture.NativeName;
         else
            cultureName = culture.Name;

         outputBlock.Text += String.Format("In {0}, {1}",
                           cultureName, thisDate.ToString(culture)) + "\n";
      }
   }
}
// The example produces the following output:
//    In Invariant Language (Invariant Country), 05/01/2009 09:00:00
//    In en-US, 5/1/2009 9:00:00 AM
//    In fr-FR, 01/05/2009 09:00:00
//    In de-DE, 01.05.2009 09:00:00
//    In es-ES, 01/05/2009 9:00:00
//    In ja-JP, 2009/05/01 9:00:00


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: