DateTimeOffset.ToString Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Konwertuje wartość bieżącego obiektu DateTimeOffset na równoważną reprezentację ciągu.
Przeciążenia
ToString() |
Konwertuje wartość bieżącego obiektu DateTimeOffset na równoważną reprezentację ciągu. |
ToString(IFormatProvider) |
Konwertuje wartość bieżącego obiektu DateTimeOffset na równoważną reprezentację ciągu przy użyciu określonych informacji formatowania specyficznych dla kultury. |
ToString(String) |
Konwertuje wartość bieżącego obiektu DateTimeOffset na równoważną reprezentację ciągu przy użyciu określonego formatu. |
ToString(String, IFormatProvider) |
Konwertuje wartość bieżącego obiektu DateTimeOffset na równoważną reprezentację ciągu przy użyciu określonych informacji o formacie i formacie specyficznym dla kultury. |
ToString()
- Źródło:
- DateTimeOffset.cs
- Źródło:
- DateTimeOffset.cs
- Źródło:
- DateTimeOffset.cs
Konwertuje wartość bieżącego obiektu DateTimeOffset 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
Ciąg reprezentujący obiekt DateTimeOffset zawierający przesunięcie dołączone na końcu ciągu.
Wyjątki
Data i godzina wykraczają poza zakres dat obsługiwanych przez kalendarz używany przez bieżącą kulturę.
Przykłady
Poniższy przykład ilustruje wywołania metody ToString() i wyświetla 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 wartością metody DateTime.ToString(), 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 ciągu formatu niestandardowego zzz
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 uniwersalnym czasem koordynowanym (UTC).
Ta metoda używa informacji formatowania pochodzących z bieżącej kultury. Aby uzyskać więcej informacji, zobacz CurrentCulture. Inne przeciążenia metody ToString umożliwiają określenie kultury, której formatowanie ma być używane, oraz zdefiniowanie wzorca wyjściowego wartości DateTimeOffset.
Uwagi dotyczące wywoływania
Metoda ToString() zwraca ciąg reprezentujący datę i godzinę w kalendarzu używanym przez bieżącą kulturę. Jeśli wartość bieżącego wystąpienia DateTimeOffset jest wcześniejsza niż MinSupportedDateTime lub nowsza niż MaxSupportedDateTime, metoda zgłasza ArgumentOutOfRangeException. Poniższy przykład zawiera ilustrację. Próbuje sformatować datę, która znajduje się poza zakresem klasy HijriCalendar, 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
open System
open System.Globalization
open System.Threading
let date1 = DateTimeOffset(DateTime(550, 1, 1), TimeSpan.Zero)
let arSY = CultureInfo "ar-SY"
arSY.DateTimeFormat.Calendar <- HijriCalendar()
// Change current culture to ar-SY.
let dft = Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentCulture <- arSY
// Display the date using the current culture's calendar.
try
printfn $"{date1}"
with :? ArgumentOutOfRangeException ->
printfn $"""{date1.ToString("d", CultureInfo.InvariantCulture)} is earlier than {arSY.DateTimeFormat.Calendar.MinSupportedDateTime.ToString("d", CultureInfo.InvariantCulture)} or later than {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
Imports System.Globalization
Imports System.Threading
Module Example
Public Sub Main()
Dim date1 As New DateTimeOffset(#1/1/550#, TimeSpan.Zero)
Dim dft As CultureInfo
Dim arSY As 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 e As ArgumentOutOfRangeException
Console.WriteLine("{0} is earlier than {1:d} or later than {2:d}", _
date1.ToString("d", CultureInfo.InvariantCulture), _
arSY.DateTimeFormat.Calendar.MinSupportedDateTime.ToString("d", CultureInfo.InvariantCulture), _
arSY.DateTimeFormat.Calendar.MaxSupportedDateTime.ToString("d", CultureInfo.InvariantCulture))
End Try
' Restore the default culture.
Thread.CurrentThread.CurrentCulture = dft
End Sub
End Module
' The example displays the following output:
' 01/01/0550 is earlier than 07/18/0622 or later than 12/31/9999
Dotyczy
ToString(IFormatProvider)
- Źródło:
- DateTimeOffset.cs
- Źródło:
- DateTimeOffset.cs
- Źródło:
- DateTimeOffset.cs
Konwertuje wartość bieżącego obiektu DateTimeOffset na równoważną reprezentację ciągu przy użyciu określonych informacji formatowania specyficznych 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 specyficznym dla kultury.
Zwraca
Ciąg reprezentujący wartość bieżącego obiektu DateTimeOffset, jak określono w formatProvider
.
Wyjątki
Data i godzina wykraczają poza zakres dat obsługiwanych przez kalendarz używany przez formatProvider
.
Przykłady
W poniższym przykładzie przedstawiono obiekt DateTimeOffset korzystający z obiektów CultureInfo 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 przeciążenia metody DateTime.ToString, 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 ciągu formatu niestandardowego zzz
z każdym elementem oddzielonym od poprzedniego elementu spacją.
Format tych trzech elementów jest definiowany przez parametr formatProvider
. Parametr formatProvider
może mieć jedną z następujących wartości:
Obiekt CultureInfo reprezentujący kulturę, której konwencje formatowania są stosowane do zwracanego ciągu. Obiekt DateTimeFormatInfo zwrócony przez właściwość CultureInfo.DateTimeFormat definiuje formatowanie zwracanego ciągu.
Obiekt DateTimeFormatInfo, który definiuje format danych daty i godziny.
Jeśli formatProvider
jest null
, używany jest obiekt DateTimeFormatInfo skojarzony z bieżącą kulturą (zobacz CurrentCulture).
Uwagi dotyczące wywoływania
Metoda ToString(IFormatProvider) zwraca ciąg reprezentujący datę i godzinę w kalendarzu używanym przez kulturę reprezentowaną przez parametr formatProvider
. Jego kalendarz jest definiowany przez właściwość Calendar. Jeśli wartość bieżącego wystąpienia DateTimeOffset jest wcześniejsza niż MinSupportedDateTime lub nowsza niż MaxSupportedDateTime, metoda zgłasza ArgumentOutOfRangeException. Poniższy przykład zawiera ilustrację. Próbuje sformatować datę, która znajduje się poza zakresem klasy JapaneseCalendar.
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
open System
open System.Globalization
let jaJP = CultureInfo "ja-JP"
jaJP.DateTimeFormat.Calendar <- JapaneseCalendar()
let date1 = DateTimeOffset(DateTime(1867, 1, 1), TimeSpan.Zero)
try
printfn $"{date1.ToString jaJP}"
with :? ArgumentOutOfRangeException ->
printfn $"{date1:d} is earlier than {jaJP.DateTimeFormat.Calendar.MinSupportedDateTime:d} or later than {jaJP.DateTimeFormat.Calendar.MaxSupportedDateTime:d}"
// The example displays the following output:
// 1/1/1867 is earlier than 9/8/1868 or later than 12/31/9999
Imports System.Globalization
Module Example
Public Sub Main()
Dim jaJP As New CultureInfo("ja-JP")
jaJP.DateTimeFormat.Calendar = New JapaneseCalendar()
Dim date1 As New DateTimeOffset(#01/01/1867#, TimeSpan.Zero)
Try
Console.WriteLine(date1.ToString(jaJP))
Catch e As ArgumentOutOfRangeException
Console.WriteLine("{0:d} is earlier than {1:d} or later than {2:d}", _
date1, _
jaJP.DateTimeFormat.Calendar.MinSupportedDateTime, _
jaJP.DateTimeFormat.Calendar.MaxSupportedDateTime)
End Try
End Sub
End Module
' The example displays the following output:
' 1/1/1867 is earlier than 9/8/1868 or later than 12/31/9999
Dotyczy
ToString(String)
- Źródło:
- DateTimeOffset.cs
- Źródło:
- DateTimeOffset.cs
- Źródło:
- DateTimeOffset.cs
Konwertuje wartość bieżącego obiektu DateTimeOffset 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
Ciąg reprezentujący wartość bieżącego obiektu DateTimeOffset, jak określono w format
.
Wyjątki
Długość format
jest jedną i nie jest to jeden ze standardowych znaków specyfikatora formatu zdefiniowanych dla DateTimeFormatInfo.
-lub-
format
nie zawiera prawidłowego wzorca formatu niestandardowego.
Data i godzina wykraczają poza zakres dat obsługiwanych przez kalendarz używany przez bieżącą kulturę.
Przykłady
W poniższym przykładzie zostanie wyświetlony obiekt DateTimeOffset do 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 Ciągi formatu niestandardowego daty i godziny), który definiuje format zwracanego ciągu. Jeśli format
jest ciągiem null lub pustym (""), wartość DateTimeOffset jest wynikiem wyjściowym przy użyciu formatu domyślnego.
W poniższej tabeli przedstawiono dokładną operację określonych specyfikatorów formatu w przypadku użycia z DateTimeOffset, która różni się od ich zachowania w przypadku użycia z DateTime.
Istniejący specyfikator formatu | Nowe zachowanie |
---|---|
"K" | Zaprojektowano tak, aby zaokrąglić datę i godzinę. W przypadku DateTimeOffsetmapuje wartość "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 format . |
"U" | Nieobsługiwane. |
"r" | Konwertuje obiekt DateTimeOffset na uniwersalny czas koordynowany (UTC) i zwraca go przy użyciu ciągu formatu niestandardowego ddd, dd MMM yyyy HH:mm:ss GMT . |
"u" | Konwertuje obiekt DateTimeOffset 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 w przypadku metody ToString(String), jak w przypadku metody ToString.
Ta metoda używa informacji formatowania pochodzących z bieżącej kultury. Aby uzyskać więcej informacji, zobacz CurrentCulture.
Uwagi dotyczące wywoływania
Metoda ToString(String) zwraca ciąg reprezentujący datę i godzinę w kalendarzu używanym przez bieżącą kulturę. Jeśli wartość bieżącego wystąpienia DateTimeOffset jest wcześniejsza niż MinSupportedDateTime lub nowsza niż MaxSupportedDateTime, metoda zgłasza ArgumentOutOfRangeException. Poniższy przykład zawiera ilustrację. Próbuje sformatować datę, która znajduje się poza zakresem klasy HebrewCalendar, gdy bieżąca kultura jest 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
open System
open System.Globalization
open System.Threading
let date1 = DateTimeOffset(DateTime(1550, 7, 21), TimeSpan.Zero)
let heIL = CultureInfo "he-IL"
heIL.DateTimeFormat.Calendar <- HebrewCalendar()
// Change current culture to he-IL.
let dft = Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentCulture <- heIL
// Display the date using the current culture's calendar.
try
printfn $"{date1:G}"
with :? ArgumentOutOfRangeException ->
printfn $"""{date1.ToString("d", CultureInfo.InvariantCulture)} is earlier than {heIL.DateTimeFormat.Calendar.MinSupportedDateTime.ToString("d", CultureInfo.InvariantCulture)} or later than {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
Imports System.Globalization
Imports System.Threading
Module Example
Public Sub Main()
Dim date1 As New DateTimeOffset(#7/21/1550#, TimeSpan.Zero)
Dim dft As CultureInfo
Dim heIL As 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 e As 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))
End Try
' Restore the default culture.
Thread.CurrentThread.CurrentCulture = dft
End Sub
End Module
' The example displays the following output:
' 07/21/1550 is earlier than 01/01/1583 or later than 09/29/2239
Zobacz też
- standardowe ciągi formatu daty i godziny
- niestandardowe ciągi formatu daty i godziny
Dotyczy
ToString(String, IFormatProvider)
- Źródło:
- DateTimeOffset.cs
- Źródło:
- DateTimeOffset.cs
- Źródło:
- DateTimeOffset.cs
Konwertuje wartość bieżącego obiektu DateTimeOffset na równoważną reprezentację ciągu przy użyciu określonych informacji o formacie i 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 specyficznym dla kultury.
Zwraca
Ciąg reprezentujący wartość bieżącego obiektu DateTimeOffset, jak określono w format
i formatProvider
.
Implementuje
Wyjątki
Długość format
jest jedną i nie jest to jeden ze standardowych znaków specyfikatora formatu zdefiniowanych dla DateTimeFormatInfo.
-lub-
format
nie zawiera prawidłowego wzorca formatu niestandardowego.
Data i godzina wykraczają poza zakres dat obsługiwanych przez kalendarz używany przez formatProvider
.
Przykłady
W poniższym przykładzie użyto metody ToString(String, IFormatProvider) do wyświetlenia obiektu DateTimeOffset 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 (""), obiekt DateTimeOffset 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 DateTimeOffset, która różni się od ich zachowania w przypadku użycia z DateTime.
Istniejący specyfikator formatu | Nowe zachowanie |
---|---|
"K" | Zaprojektowano tak, aby zaokrąglić datę i godzinę. W przypadku DateTimeOffsetmapuje wartość "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 format . |
"U" | Nieobsługiwane. |
"r" | Konwertuje obiekt DateTimeOffset na uniwersalny czas koordynowany (UTC) i zwraca go przy użyciu ciągu formatu niestandardowego ddd, dd MMM yyyy HH:mm:ss GMT . |
"u" | Konwertuje wartość DateTimeOffset 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 w przypadku metody ToString(String), jak w przypadku metody ToString.
Wzorzec odpowiadający specyfikatorom formatu standardowego, a także symbolom i nazwam składników daty i godziny, jest definiowany przez parametr formatProvider
. Parametr formatProvider
może mieć jedną z następujących wartości:
Obiekt CultureInfo reprezentujący kulturę, której formatowanie jest używane w
input
. Obiekt DateTimeFormatInfo zwrócony przez właściwość CultureInfo.DateTimeFormat definiuje formatowanie używane winput
.Obiekt DateTimeFormatInfo, który definiuje format danych daty i godziny.
Jeśli formatProvider
jest null
, używany jest obiekt DateTimeFormatInfo skojarzony z bieżącą kulturą (zobacz CurrentCulture).
Uwagi dotyczące wywoływania
Metoda ToString(String, IFormatProvider) zwraca ciąg reprezentujący datę i godzinę w kalendarzu używanym przez parametr formatProvider
. Jego kalendarz jest definiowany przez właściwość Calendar. Jeśli wartość bieżącego wystąpienia DateTimeOffset jest wcześniejsza niż MinSupportedDateTime lub nowsza niż MaxSupportedDateTime, metoda zgłasza ArgumentOutOfRangeException. Poniższy przykład zawiera ilustrację. Próbuje sformatować datę, która znajduje się poza zakresem klasy UmAlQuraCalendar.
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
open System
open System.Globalization
let arSA = CultureInfo "ar-SA"
arSA.DateTimeFormat.Calendar <- UmAlQuraCalendar()
let date1 = DateTimeOffset(DateTime(1890, 9, 10), TimeSpan.Zero)
try
printfn $"""{date1.ToString("d", arSA)}"""
with :? ArgumentOutOfRangeException ->
printfn $"{date1:d} is earlier than {arSA.DateTimeFormat.Calendar.MinSupportedDateTime:d} or later than {arSA.DateTimeFormat.Calendar.MaxSupportedDateTime:d}"
// The example displays the following output:
// 9/10/1890 is earlier than 4/30/1900 or later than 11/16/2077
Imports System.Globalization
Module Example
Public Sub Main()
Dim arSA As New CultureInfo("ar-SA")
arSA.DateTimeFormat.Calendar = New UmAlQuraCalendar()
Dim date1 As New DateTimeOffset(#09/10/1890#, TimeSpan.Zero)
Try
Console.WriteLine(date1.ToString("d", arSA))
Catch e As ArgumentOutOfRangeException
Console.WriteLine("{0:d} is earlier than {1:d} or later than {2:d}", _
date1, _
arSA.DateTimeFormat.Calendar.MinSupportedDateTime, _
arSA.DateTimeFormat.Calendar.MaxSupportedDateTime)
End Try
End Sub
End Module
' The example displays the following output:
' 9/10/1890 is earlier than 4/30/1900 or later than 5/13/2029
Zobacz też
- standardowe ciągi formatu daty i godziny
- niestandardowe ciągi formatu daty i godziny
- przykład : narzędzie formatowania winforms platformy .NET Core (C#)
- przykład : .NET Core WinForms Formatting Utility (Visual Basic)