DateTimeOffset.ToString Metoda

Definicja

Konwertuje wartość bieżącego DateTimeOffset obiektu na równoważną reprezentację ciągu.

Przeciążenia

ToString()

Konwertuje wartość bieżącego DateTimeOffset obiektu na równoważną reprezentację ciągu.

ToString(IFormatProvider)

Konwertuje wartość bieżącego DateTimeOffset obiektu na równoważną reprezentację ciągu przy użyciu określonych informacji o formatowaniu specyficznym dla kultury.

ToString(String)

Konwertuje wartość bieżącego DateTimeOffset obiektu na równoważną reprezentację ciągu przy użyciu określonego formatu.

ToString(String, IFormatProvider)

Konwertuje wartość bieżącego DateTimeOffset obiektu na równoważną reprezentację ciągu przy użyciu określonego formatu i informacji o formacie specyficznym dla kultury.

ToString()

Konwertuje wartość bieżącego DateTimeOffset obiektu na równoważną reprezentację ciągu.

public:
 override System::String ^ ToString();
public override string ToString ();
override this.ToString : unit -> string
Public Overrides Function ToString () As String

Zwraca

String

Reprezentacja DateTimeOffset ciągu obiektu, który zawiera przesunięcie dołączone na końcu ciągu.

Wyjątki

Data i godzina jest poza zakresem dat obsługiwanym przez kalendarz używany przez bieżącą kulturę.

Przykłady

Poniższy przykład ilustruje wywołania ToString() metody i wyświetla jego dane wyjściowe w systemie, którego bieżąca kultura jest en-us.

DateTimeOffset thisDate;

// Show output for UTC time
thisDate = DateTimeOffset.UtcNow;
Console.WriteLine(thisDate.ToString());  // Displays 3/28/2007 7:13:50 PM +00:00

// Show output for local time
thisDate = DateTimeOffset.Now;
Console.WriteLine(thisDate.ToString());  // Displays 3/28/2007 12:13:50 PM -07:00

// Show output for arbitrary time offset
thisDate = thisDate.ToOffset(new TimeSpan(-5, 0, 0));
Console.WriteLine(thisDate.ToString());  // Displays 3/28/2007 2:13:50 PM -05:00
// Show output for UTC time
let thisDate = DateTimeOffset.UtcNow
printfn $"{thisDate.ToString()}"  // Displays 3/28/2007 7:13:50 PM +00:00

// Show output for local time
let thisDate = DateTimeOffset.Now
printfn $"{thisDate.ToString()}"  // Displays 3/28/2007 12:13:50 PM -07:00

// Show output for arbitrary time offset
let thisDate = thisDate.ToOffset(TimeSpan(-5, 0, 0))
printfn $"{thisDate.ToString()}"  // Displays 3/28/2007 2:13:50 PM -05:00
Dim thisDate As DateTimeOffset

' Show output for UTC time
thisDate = DateTimeOffset.UtcNow
Console.WriteLine(thisDate.ToString())  ' Displays 3/28/2007 7:13:50 PM +00:00

' Show output for local time 
thisDate = DateTimeOffset.Now
Console.WriteLine(thisDate.ToString())  ' Displays 3/28/2007 12:13:50 PM -07:00

' Show output for arbitrary time offset
thisDate = thisDate.ToOffset(new TimeSpan(-5, 0, 0))
Console.WriteLine(thisDate.ToString())  ' Displays 3/28/2007 2:13:50 PM -05:00

Uwagi

Wartość zwracana tej metody jest identyczna z DateTime.ToString() wartością metody, z tą różnicą, że zawiera spację, po której następuje przesunięcie dołączone na końcu ciągu. Innymi słowy formatuje dane wyjściowe przy użyciu wzorca daty krótkiej, wzorca długiego czasu i zzz ciągu formatu niestandardowego, z każdym elementem oddzielonym od poprzedniego elementu spacją. Jeśli na przykład DateTime.ToString() zwraca wartość 1/12/2008 6:15:50 pm, ToString() zwraca wartość 1/12/2008 6:15:50 PM -08:00 dla czasu, który wynosi osiem godzin za koordynowanym uniwersalnym czasem (UTC).

Metoda ta wykorzystuje informacje o formatowaniu pochodzące z bieżącej kultury. Aby uzyskać więcej informacji, zobacz CurrentCulture. Inne przeciążenia ToString metody umożliwiają określenie kultury, której formatowanie ma być używane, oraz definiowanie wzorca wyjściowego DateTimeOffset wartości.

Uwagi dotyczące wywoływania

Metoda ToString() zwraca reprezentację ciągu daty i godziny w kalendarzu używanym przez bieżącą kulturę. Jeśli wartość bieżącego DateTimeOffset wystąpienia jest wcześniejsza niż lub nowsza niż MinSupportedDateTime MaxSupportedDateTime, metoda zgłasza ArgumentOutOfRangeExceptionwartość . Poniższy przykład stanowi ilustrację. Próbuje sformatować datę, która znajduje się poza zakresem HijriCalendar klasy, gdy bieżąca kultura jest arabska (Syria).

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      DateTimeOffset date1 = new DateTimeOffset(new DateTime(550, 1, 1),
                                                TimeSpan.Zero);
      CultureInfo dft;
      CultureInfo arSY = new CultureInfo("ar-SY");
      arSY.DateTimeFormat.Calendar = new HijriCalendar();

      // Change current culture to ar-SY.
      dft = Thread.CurrentThread.CurrentCulture;
      Thread.CurrentThread.CurrentCulture = arSY;

      // Display the date using the current culture's calendar.
      try {
         Console.WriteLine(date1.ToString());
      }
      catch (ArgumentOutOfRangeException) {
         Console.WriteLine("{0} is earlier than {1} or later than {2}",
                           date1.ToString("d", CultureInfo.InvariantCulture),
                           arSY.DateTimeFormat.Calendar.MinSupportedDateTime.ToString("d", CultureInfo.InvariantCulture),
                           arSY.DateTimeFormat.Calendar.MaxSupportedDateTime.ToString("d", CultureInfo.InvariantCulture));
      }

      // Restore the default culture.
      Thread.CurrentThread.CurrentCulture = dft;
   }
}
// The example displays the following output:
//    01/01/0550 is earlier than 07/18/0622 or later than 12/31/9999

Dotyczy

ToString(IFormatProvider)

Konwertuje wartość bieżącego DateTimeOffset obiektu na równoważną reprezentację ciągu przy użyciu określonych informacji o formatowaniu specyficznym dla kultury.

public:
 System::String ^ ToString(IFormatProvider ^ formatProvider);
public string ToString (IFormatProvider formatProvider);
public string ToString (IFormatProvider? formatProvider);
override this.ToString : IFormatProvider -> string
Public Function ToString (formatProvider As IFormatProvider) As String

Parametry

formatProvider
IFormatProvider

Obiekt, który dostarcza informacje o formatowaniu specyficzne dla kultury.

Zwraca

String

Ciąg reprezentujący wartość bieżącego DateTimeOffset obiektu zgodnie z parametrem formatProvider.

Wyjątki

Data i godzina wykraczają poza zakres dat obsługiwanych przez kalendarz używany przez formatProviderprogram .

Przykłady

Poniższy przykład przedstawia DateTimeOffset obiekt używający CultureInfo obiektów reprezentujących niezmienną kulturę, a także cztery inne kultury.

CultureInfo[] cultures = new CultureInfo[] {CultureInfo.InvariantCulture,
                                           new CultureInfo("en-us"),
                                           new CultureInfo("fr-fr"),
                                           new CultureInfo("de-DE"),
                                           new CultureInfo("es-ES")};

DateTimeOffset thisDate = new DateTimeOffset(2007, 5, 1, 9, 0, 0,
                                             TimeSpan.Zero);

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

   Console.WriteLine("In {0}, {1}",
                     cultureName, thisDate.ToString(culture));
}
// The example produces the following output:
//    In Invariant Language (Invariant Country), 05/01/2007 09:00:00 +00:00
//    In en-US, 5/1/2007 9:00:00 AM +00:00
//    In fr-FR, 01/05/2007 09:00:00 +00:00
//    In de-DE, 01.05.2007 09:00:00 +00:00
//    In es-ES, 01/05/2007 9:00:00 +00:00
let cultures = 
    [| CultureInfo.InvariantCulture
       CultureInfo "en-us"
       CultureInfo "fr-fr"
       CultureInfo "de-DE"
       CultureInfo "es-ES" |]

let thisDate = DateTimeOffset(2007, 5, 1, 9, 0, 0, TimeSpan.Zero)

for culture in cultures do
    let cultureName = 
        if String.IsNullOrEmpty culture.Name then
            culture.NativeName
        else
            culture.Name
    printfn $"In {cultureName}, {thisDate.ToString culture}"

// The example produces the following output:
//    In Invariant Language (Invariant Country), 05/01/2007 09:00:00 +00:00
//    In en-US, 5/1/2007 9:00:00 AM +00:00
//    In fr-FR, 01/05/2007 09:00:00 +00:00
//    In de-DE, 01.05.2007 09:00:00 +00:00
//    In es-ES, 01/05/2007 9:00:00 +00:00
     Dim cultures() As CultureInfo = {CultureInfo.InvariantCulture, _
                                      New CultureInfo("en-us"), _
                                      New CultureInfo("fr-fr"), _
                                      New CultureInfo("de-DE"), _
                                      New CultureInfo("es-ES")}

     Dim thisDate As New DateTimeOffset(#5/1/2007 9:00AM#, TimeSpan.Zero)                                            

     For Each culture As CultureInfo In cultures
        Dim cultureName As String 
        If String.IsNullOrEmpty(culture.Name) Then
           cultureName = culture.NativeName
        Else
           cultureName = culture.Name
        End If
        Console.WriteLine("In {0}, {1}", _
                          cultureName, thisDate.ToString(culture))
     Next                                            
     ' The example produces the following output:
     '    In Invariant Language (Invariant Country), 05/01/2007 09:00:00 +00:00
     '    In en-US, 5/1/2007 9:00:00 AM +00:00
     '    In fr-FR, 01/05/2007 09:00:00 +00:00
     '    In de-DE, 01.05.2007 09:00:00 +00:00
     '    In es-ES, 01/05/2007 9:00:00 +00:00

Uwagi

Wartość zwracana tej metody jest taka sama jak w przypadku jej równoważnego DateTime.ToString przeciążenia metody, z wyjątkiem tego, że zawiera spację, po której następuje przesunięcie dołączone na końcu ciągu. Innymi słowy formatuje dane wyjściowe przy użyciu wzorca daty krótkiej, wzorca długiego czasu i zzz ciągu formatu niestandardowego, z każdym elementem oddzielonym od poprzedniego elementu spacją.

Format tych trzech elementów jest definiowany formatProvider przez parametr . Parametr formatProvider może być jednym z następujących:

Jeśli formatProvider parametr ma nullwartość , DateTimeFormatInfo używany jest obiekt skojarzony z bieżącą kulturą (zobacz CurrentCulture).

Uwagi dotyczące wywoływania

Metoda ToString(IFormatProvider) zwraca reprezentację ciągu daty i godziny w kalendarzu używanym przez kulturę reprezentowaną formatProvider przez parametr . Jego kalendarz jest definiowany Calendar przez właściwość . Jeśli wartość bieżącego DateTimeOffset wystąpienia jest wcześniejsza niż lub nowsza niż MinSupportedDateTime MaxSupportedDateTime, metoda zgłasza błąd ArgumentOutOfRangeException. Poniższy przykład stanowi ilustrację. Próbuje sformatować datę, która znajduje się poza zakresem JapaneseCalendar klasy.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo jaJP = new CultureInfo("ja-JP");
      jaJP.DateTimeFormat.Calendar = new JapaneseCalendar();
      DateTimeOffset date1 = new DateTimeOffset(new DateTime(1867, 1, 1),
                                                TimeSpan.Zero);

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

Dotyczy

ToString(String)

Konwertuje wartość bieżącego DateTimeOffset obiektu na równoważną reprezentację ciągu przy użyciu określonego formatu.

public:
 System::String ^ ToString(System::String ^ format);
public string ToString (string format);
public string ToString (string? format);
override this.ToString : string -> string
Public Function ToString (format As String) As String

Parametry

format
String

Ciąg formatu.

Zwraca

String

Ciąg reprezentujący wartość bieżącego DateTimeOffset obiektu, jak określono w elemencie format.

Wyjątki

Długość format jest jedną i nie jest to jeden ze standardowych znaków specyfikatora formatu zdefiniowanych dla elementu DateTimeFormatInfo.

-lub-

format nie zawiera prawidłowego wzorca formatu niestandardowego.

Data i godzina jest poza zakresem dat obsługiwanym przez kalendarz używany przez bieżącą kulturę.

Przykłady

Poniższy przykład przedstawia DateTimeOffset obiekt w konsoli przy użyciu każdego ze standardowych specyfikatorów formatu daty i godziny. Dane wyjściowe są formatowane przy użyciu kultury en-us.

DateTimeOffset outputDate = new DateTimeOffset(2007, 10, 31, 21, 0, 0,
                                     new TimeSpan(-8, 0, 0));
string specifier;

// Output date using each standard date/time format specifier
specifier = "d";
// Displays   d: 10/31/2007
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "D";
// Displays   D: Wednesday, October 31, 2007
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "t";
// Displays   t: 9:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "T";
// Displays   T: 9:00:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "f";
// Displays   f: Wednesday, October 31, 2007 9:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "F";
// Displays   F: Wednesday, October 31, 2007 9:00:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "g";
// Displays   g: 10/31/2007 9:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "G";
// Displays   G: 10/31/2007 9:00:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "M";           // 'm' is identical
// Displays   M: October 31
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "R";           // 'r' is identical
// Displays   R: Thu, 01 Nov 2007 05:00:00 GMT
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "s";
// Displays   s: 2007-10-31T21:00:00
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

specifier = "u";
// Displays   u: 2007-11-01 05:00:00Z
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));

// Specifier is not supported
specifier = "U";
try
{
   Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));
}
catch (FormatException)
{
   Console.WriteLine("{0}: Not supported.", specifier);
}

specifier = "Y";         // 'y' is identical
// Displays   Y: October, 2007
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier));
let outputDate = DateTimeOffset(2007, 10, 31, 21, 0, 0, TimeSpan(-8, 0, 0))

// Output date using each standard date/time format specifier
let specifier = "d"
// Displays   d: 10/31/2007
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "D"
// Displays   D: Wednesday, October 31, 2007
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "t"
// Displays   t: 9:00 PM
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "T"
// Displays   T: 9:00:00 PM
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "f"
// Displays   f: Wednesday, October 31, 2007 9:00 PM
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "F"
// Displays   F: Wednesday, October 31, 2007 9:00:00 PM
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "g"
// Displays   g: 10/31/2007 9:00 PM
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "G"
// Displays   G: 10/31/2007 9:00:00 PM
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "M"           // 'm' is identical
// Displays   M: October 31
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "R"           // 'r' is identical
// Displays   R: Thu, 01 Nov 2007 05:00:00 GMT
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "s"
// Displays   s: 2007-10-31T21:00:00
printfn $"{specifier}: {outputDate.ToString specifier}"

let specifier = "u"
// Displays   u: 2007-11-01 05:00:00Z
printfn $"{specifier}: {outputDate.ToString specifier}"

// Specifier is not supported
let specifier = "U"
try
    printfn $"{specifier}: {outputDate.ToString specifier}"
with :? FormatException ->
    printfn $"{specifier}: Not supported."

let specifier = "Y"         // 'y' is identical
// Displays   Y: October, 2007
printfn $"{specifier}: {outputDate.ToString specifier}"
Dim outputDate As New DateTimeOffset(#10/31/2007 9:00PM#, _
                                     New TimeSpan(-8, 0, 0))
Dim specifier As String 
      
' Output date using each standard date/time format specifier
specifier = "d"
' Displays   d: 10/31/2007
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "D"
' Displays   D: Wednesday, October 31, 2007
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "t"
' Displays   t: 9:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "T"
' Displays   T: 9:00:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "f"
' Displays   f: Wednesday, October 31, 2007 9:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "F"
' Displays   F: Wednesday, October 31, 2007 9:00:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "g"
' Displays   g: 10/31/2007 9:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "G"
' Displays   G: 10/31/2007 9:00:00 PM
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "M"           ' 'm' is identical
' Displays   M: October 31
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "R"           ' 'r' is identical
' Displays   R: Thu, 01 Nov 2007 05:00:00 GMT
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "s"
' Displays   s: 2007-10-31T21:00:00
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

specifier = "u"
' Displays   u: 2007-11-01 05:00:00Z
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 

' Specifier is not supported
specifier = "U"
Try
   Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier)) 
Catch e As FormatException
   Console.WriteLine("{0}: Not supported.", specifier)   
End Try

specifier = "Y"         ' 'y' is identical
' Displays   Y: October, 2007
Console.WriteLine("{0}: {1}", specifier, outputDate.ToString(specifier))

Uwagi

Parametr format powinien zawierać pojedynczy znak specyfikatora formatu (zobacz Standardowe ciągi formatu daty i godziny) lub wzorzec formatu niestandardowego (zobacz Niestandardowe ciągi formatu daty i godziny), który definiuje format zwracanego ciągu. Jeśli format jest ciągiem o wartości null lub pustym (""), DateTimeOffset wartość jest zwracana przy użyciu formatu domyślnego.

W poniższej tabeli przedstawiono dokładną operację określonych specyfikatorów formatu w przypadku użycia z DateTimeOffsetprogramem , która różni się od ich zachowania w przypadku użycia z DateTimeprogramem .

Istniejący specyfikator formatu Nowe zachowanie
„K” Zaprojektowano tak, aby zaokrąglić datę i godzinę. Za pomocą polecenia DateTimeOffsetjest mapowany na "zzz" (przesunięcie jest zawsze wyświetlane z godzinami i minutami). Należy pamiętać, że "K" jest specyfikatorem formatu niestandardowego; nie może być wyświetlany jako pojedynczy znak w pliku format.
„U” Nieobsługiwane.
"r" Konwertuje DateTimeOffset obiekt na uniwersalny czas koordynowany (UTC) i zwraca go przy użyciu ciągu ddd, dd MMM yyyy HH:mm:ss GMTformatu niestandardowego .
„u” Konwertuje DateTimeOffset obiekt na utc i zwraca go przy użyciu formatu yyyy-MM-dd HH:mm:ssZ.

Pozostałe standardowe specyfikatory formatu daty i godziny zachowują się tak samo jak ToString(String) w ToString przypadku metody .

Metoda ta wykorzystuje informacje o formatowaniu pochodzące z bieżącej kultury. Aby uzyskać więcej informacji, zobacz CurrentCulture.

Uwagi dotyczące wywoływania

Metoda ToString(String) zwraca reprezentację ciągu daty i godziny w kalendarzu używanym przez bieżącą kulturę. Jeśli wartość bieżącego DateTimeOffset wystąpienia jest wcześniejsza niż lub nowsza niż MinSupportedDateTime MaxSupportedDateTime, metoda zgłasza błąd ArgumentOutOfRangeException. Poniższy przykład stanowi ilustrację. Próbuje sformatować datę, która znajduje się poza zakresem HebrewCalendar klasy, gdy bieżąca kultura to Hebrajski (Izrael).

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      DateTimeOffset date1 = new DateTimeOffset(new DateTime(1550, 7, 21),
                                                TimeSpan.Zero);
      CultureInfo dft;
      CultureInfo heIL = new CultureInfo("he-IL");
      heIL.DateTimeFormat.Calendar = new HebrewCalendar();

      // Change current culture to he-IL.
      dft = Thread.CurrentThread.CurrentCulture;
      Thread.CurrentThread.CurrentCulture = heIL;

      // Display the date using the current culture's calendar.
      try {
         Console.WriteLine(date1.ToString("G"));
      }
      catch (ArgumentOutOfRangeException) {
         Console.WriteLine("{0} is earlier than {1} or later than {2}",
                           date1.ToString("d", CultureInfo.InvariantCulture),
                           heIL.DateTimeFormat.Calendar.MinSupportedDateTime.ToString("d", CultureInfo.InvariantCulture),
                           heIL.DateTimeFormat.Calendar.MaxSupportedDateTime.ToString("d", CultureInfo.InvariantCulture));
      }

      // Restore the default culture.
      Thread.CurrentThread.CurrentCulture = dft;
   }
}
// The example displays the following output:
//    07/21/1550 is earlier than 01/01/1583 or later than 09/29/2239

Zobacz też

Dotyczy

ToString(String, IFormatProvider)

Konwertuje wartość bieżącego DateTimeOffset obiektu na równoważną reprezentację ciągu przy użyciu określonego formatu i informacji o formacie specyficznym dla kultury.

public:
 virtual System::String ^ ToString(System::String ^ format, IFormatProvider ^ formatProvider);
public string ToString (string format, IFormatProvider formatProvider);
public string ToString (string? format, IFormatProvider? formatProvider);
override this.ToString : string * IFormatProvider -> string
Public Function ToString (format As String, formatProvider As IFormatProvider) As String

Parametry

format
String

Ciąg formatu.

formatProvider
IFormatProvider

Obiekt, który dostarcza informacje o formatowaniu specyficzne dla kultury.

Zwraca

String

Ciąg reprezentujący wartość bieżącego DateTimeOffset obiektu zgodnie z parametrami format i provider.

Implementuje

Wyjątki

Długość format jest jedną i nie jest to jeden ze standardowych znaków specyfikatora formatu zdefiniowanych dla elementu DateTimeFormatInfo.

-lub-

format nie zawiera prawidłowego wzorca formatu niestandardowego.

Data i godzina wykraczają poza zakres dat obsługiwanych przez kalendarz używany przez formatProviderprogram .

Przykłady

W poniższym przykładzie użyto ToString(String, IFormatProvider) metody do wyświetlenia DateTimeOffset obiektu przy użyciu niestandardowego ciągu formatu dla kilku różnych kultur.

DateTimeOffset outputDate = new DateTimeOffset(2007, 11, 1, 9, 0, 0,
                                     new TimeSpan(-7, 0, 0));
string format = "dddd, MMM dd yyyy HH:mm:ss zzz";

// Output date and time using custom format specification
Console.WriteLine(outputDate.ToString(format, null as DateTimeFormatInfo));
Console.WriteLine(outputDate.ToString(format, CultureInfo.InvariantCulture));
Console.WriteLine(outputDate.ToString(format,
                                      new CultureInfo("fr-FR")));
Console.WriteLine(outputDate.ToString(format,
                                      new CultureInfo("es-ES")));
// The example displays the following output to the console:
//    Thursday, Nov 01 2007 09:00:00 -07:00
//    Thursday, Nov 01 2007 09:00:00 -07:00
//    jeudi, nov. 01 2007 09:00:00 -07:00
//    jueves, nov 01 2007 09:00:00 -07:00
let outputDate = DateTimeOffset(2007, 11, 1, 9, 0, 0, TimeSpan(-7, 0, 0))
let format = "dddd, MMM dd yyyy HH:mm:ss zzz"

// Output date and time using custom format specification
printfn $"{outputDate.ToString(format, null)}"
printfn $"{outputDate.ToString(format, CultureInfo.InvariantCulture)}"
printfn $"""{outputDate.ToString(format, CultureInfo "fr-FR")}"""
printfn $"""{outputDate.ToString(format, CultureInfo "es-ES")}"""

// The example displays the following output to the console:
//    Thursday, Nov 01 2007 09:00:00 -07:00
//    Thursday, Nov 01 2007 09:00:00 -07:00
//    jeudi, nov. 01 2007 09:00:00 -07:00
//    jueves, nov 01 2007 09:00:00 -07:00
Dim outputDate As New DateTimeOffset(#11/1/2007 9:00AM#, _
                                     New TimeSpan(-7, 0, 0)) 
Dim format As String = "dddd, MMM dd yyyy HH:mm:ss zzz"

' Output date and time using custom format specification
Console.WriteLine(outputDate.ToString(format, Nothing))
Console.WriteLine(outputDate.ToString(format, CultureInfo.InvariantCulture))
Console.WriteLine(outputDate.ToString(format, _
                                      New CultureInfo("fr-FR")))
Console.WriteLine(outputDate.ToString(format, _
                                      New CultureInfo("es-ES")))
' The example displays the following output to the console:
'    Thursday, Nov 01 2007 09:00:00 -07:00
'    Thursday, Nov 01 2007 09:00:00 -07:00
'    jeudi, nov. 01 2007 09:00:00 -07:00
'    jueves, nov 01 2007 09:00:00 -07:00

Uwagi

Parametr format powinien zawierać pojedynczy znak specyfikatora formatu (zobacz Standardowe ciągi formatu daty i godziny) lub wzorzec formatu niestandardowego (zobacz Niestandardowe ciągi formatu daty i godziny). Jeśli format jest ciągiem o wartości null lub pustym (""), DateTimeOffset obiekt jest zwracany przy użyciu formatu domyślnego.

W poniższej tabeli przedstawiono dokładną operację określonych specyfikatorów formatu w przypadku użycia z DateTimeOffsetprogramem , która różni się od ich zachowania w przypadku użycia z DateTimeprogramem .

Istniejący specyfikator formatu Nowe zachowanie
„K” Zaprojektowano tak, aby zaokrąglić datę i godzinę. Za pomocą polecenia DateTimeOffsetjest mapowany na "zzz" (przesunięcie jest zawsze wyświetlane z godzinami i minutami). Należy pamiętać, że "K" jest specyfikatorem formatu niestandardowego; nie może być wyświetlany jako pojedynczy znak w pliku format.
„U” Nieobsługiwane.
"r" Konwertuje DateTimeOffset obiekt na uniwersalny czas koordynowany (UTC) i zwraca go przy użyciu ciągu ddd, dd MMM yyyy HH:mm:ss GMTformatu niestandardowego .
„u” Konwertuje DateTimeOffset wartość na utc i zwraca ją przy użyciu formatu yyyy-MM-dd HH:mm:ssZ.

Pozostałe standardowe specyfikatory formatu daty i godziny zachowują się tak samo jak ToString(String) w ToString przypadku metody .

Wzorzec odpowiadający specyfikatorom formatu standardowego, a także symbole i nazwy składników daty i godziny, jest definiowany formatProvider przez parametr . Parametr formatProvider może być jednym z następujących:

Jeśli formatProvider parametr ma nullwartość , DateTimeFormatInfo używany jest obiekt skojarzony z bieżącą kulturą (zobacz CurrentCulture).

Uwagi dotyczące wywoływania

Metoda ToString(String, IFormatProvider) zwraca reprezentację ciągu daty i godziny w kalendarzu używanym formatProvider przez parametr . Jego kalendarz jest definiowany Calendar przez właściwość . Jeśli wartość bieżącego DateTimeOffset wystąpienia jest wcześniejsza niż lub nowsza niż MinSupportedDateTime MaxSupportedDateTime, metoda zgłasza błąd ArgumentOutOfRangeException. Poniższy przykład stanowi ilustrację. Próbuje sformatować datę, która znajduje się poza zakresem UmAlQuraCalendar klasy.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo arSA = new CultureInfo("ar-SA");
      arSA.DateTimeFormat.Calendar = new UmAlQuraCalendar();
      DateTimeOffset date1 = new DateTimeOffset(new DateTime(1890, 9, 10),
                                                TimeSpan.Zero);

      try {
         Console.WriteLine(date1.ToString("d", arSA));
      }
      catch (ArgumentOutOfRangeException) {
         Console.WriteLine("{0:d} is earlier than {1:d} or later than {2:d}",
                           date1,
                           arSA.DateTimeFormat.Calendar.MinSupportedDateTime,
                           arSA.DateTimeFormat.Calendar.MaxSupportedDateTime);
      }
   }
}
// The example displays the following output:
//    9/10/1890 is earlier than 4/30/1900 or later than 5/13/2029

Zobacz też

Dotyczy