Прочитать на английском

Поделиться через


DateTimeOffset.ToString Метод

Определение

Преобразует значение текущего объекта DateTimeOffset в эквивалентное строковое представление.

Перегрузки

ToString()

Преобразует значение текущего объекта DateTimeOffset в эквивалентное строковое представление.

ToString(IFormatProvider)

Преобразует значение текущего объекта DateTimeOffset в эквивалентное строковое представление, используя указанные сведения о форматировании, зависящие от языка и региональных параметров.

ToString(String)

Преобразует значение текущего объекта DateTimeOffset в эквивалентное строковое представление с помощью указанного формата.

ToString(String, IFormatProvider)

Преобразует значение текущего объекта DateTimeOffset в эквивалентное строковое представление, используя указанные сведения о формате и языке и региональных параметрах.

ToString()

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Преобразует значение текущего объекта DateTimeOffset в эквивалентное строковое представление.

C#
public override string ToString ();

Возвращаемое значение

Строковое представление объекта DateTimeOffset, включающее смещение, добавленное в конце строки.

Исключения

Дата и время находятся вне диапазона дат, поддерживаемых календарем, используемым текущим языком и региональными параметрами.

Примеры

В следующем примере показаны вызовы метода ToString() и отображаются выходные данные в системе с текущим языком и региональными параметрами en-us.

C#
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

Комментарии

Возвращаемое значение этого метода идентично значению метода DateTime.ToString(), за исключением того, что оно включает пробел, за которым следует смещение, добавленное в конце строки. Другими словами, он форматирует выходные данные с помощью шаблона короткой даты, длинного шаблона времени и строки пользовательского формата zzz с каждым элементом, разделенным от предыдущего элемента пробелом. Например, если DateTime.ToString() возвращает значение 1/12.2008 6:15:50 PM, ToString() возвращает значение 1.12.2008 6:15:50 -08:00 за восемь часов в формате UTC.

Этот метод использует сведения о форматировании, производные от текущего языка и региональных параметров. Дополнительные сведения см. в CurrentCulture. Другие перегрузки метода ToString позволяют указать язык и региональные параметры, форматирование которых необходимо использовать, и определить выходной шаблон значения DateTimeOffset.

Примечания для тех, кто вызывает этот метод

Метод ToString() возвращает строковое представление даты и времени в календаре, используемого текущим языком и региональными параметрами. Если значение текущего экземпляра DateTimeOffset раньше MinSupportedDateTime или более поздней, чем MaxSupportedDateTime, метод создает ArgumentOutOfRangeException. В следующем примере показана иллюстрация. Она пытается отформатировать дату, которая находится за пределами диапазона класса HijriCalendar, когда текущий язык и региональные параметры — арабский (Сирия).

C#
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

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToString(IFormatProvider)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Преобразует значение текущего объекта DateTimeOffset в эквивалентное строковое представление, используя указанные сведения о форматировании, зависящие от языка и региональных параметров.

C#
public string ToString (IFormatProvider formatProvider);
C#
public string ToString (IFormatProvider? formatProvider);

Параметры

formatProvider
IFormatProvider

Объект, предоставляющий сведения о форматировании, зависящее от языка и региональных параметров.

Возвращаемое значение

Строковое представление значения текущего объекта DateTimeOffset, указанного formatProvider.

Исключения

Дата и время находятся вне диапазона дат, поддерживаемых календарем, используемым formatProvider.

Примеры

В следующем примере отображается объект DateTimeOffset с помощью CultureInfo объектов, представляющих инвариантный язык и региональные параметры, а также четыре других языка и региональных параметров.

C#
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

Комментарии

Возвращаемое значение этого метода идентично его эквивалентной перегрузке метода DateTime.ToString, за исключением того, что он включает пробел, за которым следует смещение, добавленное в конце строки. Другими словами, он форматирует выходные данные с помощью шаблона короткой даты, длинного шаблона времени и строки пользовательского формата zzz с каждым элементом, разделенным от предыдущего элемента пробелом.

Формат этих трех элементов определяется параметром formatProvider. Параметр formatProvider может быть следующим:

  • Объект CultureInfo, представляющий язык и региональные параметры, соглашения о форматировании которых применяются к возвращаемой строке. Объект DateTimeFormatInfo, возвращаемый свойством CultureInfo.DateTimeFormat, определяет форматирование возвращаемой строки.

  • Объект DateTimeFormatInfo, определяющий формат данных даты и времени.

Если formatProvidernull, используется объект DateTimeFormatInfo, связанный с текущим языком и региональными параметрами (см. CurrentCulture).

Примечания для тех, кто вызывает этот метод

Метод ToString(IFormatProvider) возвращает строковое представление даты и времени в календаре, используемого языком и региональными параметрами, представленными параметром formatProvider. Его календарь определяется свойством Calendar. Если значение текущего экземпляра DateTimeOffset раньше MinSupportedDateTime или более поздней, чем MaxSupportedDateTime, метод создает ArgumentOutOfRangeException. В следующем примере показана иллюстрация. Он пытается отформатировать дату, которая находится за пределами диапазона класса JapaneseCalendar.

C#
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

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToString(String)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Преобразует значение текущего объекта DateTimeOffset в эквивалентное строковое представление с помощью указанного формата.

C#
public string ToString (string format);
C#
public string ToString (string? format);

Параметры

format
String

Строка формата.

Возвращаемое значение

Строковое представление значения текущего объекта DateTimeOffset, указанного format.

Исключения

Длина format равна одной, и это не один из стандартных символов описателя формата, определенных для DateTimeFormatInfo.

-или-

format не содержит допустимый шаблон пользовательского формата.

Дата и время находятся вне диапазона дат, поддерживаемых календарем, используемым текущим языком и региональными параметрами.

Примеры

В следующем примере отображается объект DateTimeOffset в консоль с помощью каждого из стандартных описателей формата даты и времени. Выходные данные форматируются с помощью языка и региональных параметров en-us.

C#
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));

Комментарии

Параметр format должен содержать один символ описатель формата (см. строк стандартного формата даты и времени) или настраиваемый шаблон формата (см. настраиваемые строки формата даты и времени), определяющий формат возвращаемой строки. Если format является пустой или пустой строкой (""), DateTimeOffset значение выводится с помощью формата по умолчанию.

В следующей таблице показана точная операция определенных описателей формата при использовании с DateTimeOffset, которая отличается от их поведения при использовании с DateTime.

Существующий описатель формата Новое поведение
"K" Предназначен для обхода даты и времени. С DateTimeOffsetсопоставляется с "zzz" (смещение всегда отображается с часами и минутами). Обратите внимание, что "K" — это настраиваемый описатель формата; Он не может отображаться как один символ в format.
"U" Не поддерживается.
"r" Преобразует объект DateTimeOffset в формат UTC и выводит его с помощью строки пользовательского формата ddd, dd MMM yyyy HH:mm:ss GMT.
"u" Преобразует объект DateTimeOffset в формате UTC и выводит его с помощью формата yyyy-MM-dd HH:mm:ssZ.

Оставшиеся стандартные описатели формата даты и времени ведут себя одинаково с методом ToString(String), как и с методом ToString.

Этот метод использует сведения о форматировании, производные от текущего языка и региональных параметров. Дополнительные сведения см. в CurrentCulture.

Примечания для тех, кто вызывает этот метод

Метод ToString(String) возвращает строковое представление даты и времени в календаре, используемого текущим языком и региональными параметрами. Если значение текущего экземпляра DateTimeOffset раньше MinSupportedDateTime или более поздней, чем MaxSupportedDateTime, метод создает ArgumentOutOfRangeException. В следующем примере показана иллюстрация. Он пытается отформатировать дату, которая находится за пределами диапазона класса HebrewCalendar, когда текущая культура — иврит (Израиль).

C#
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

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToString(String, IFormatProvider)

Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs
Исходный код:
DateTimeOffset.cs

Преобразует значение текущего объекта DateTimeOffset в эквивалентное строковое представление, используя указанные сведения о формате и языке и региональных параметрах.

C#
public string ToString (string format, IFormatProvider formatProvider);
C#
public string ToString (string? format, IFormatProvider? formatProvider);

Параметры

format
String

Строка формата.

formatProvider
IFormatProvider

Объект, предоставляющий сведения о форматировании, зависящее от языка и региональных параметров.

Возвращаемое значение

Строковое представление значения текущего объекта DateTimeOffset, указанного format и formatProvider.

Реализации

Исключения

Длина format равна одной, и это не один из стандартных символов описателя формата, определенных для DateTimeFormatInfo.

-или-

format не содержит допустимый шаблон пользовательского формата.

Дата и время находятся вне диапазона дат, поддерживаемых календарем, используемым formatProvider.

Примеры

В следующем примере метод ToString(String, IFormatProvider) используется для отображения объекта DateTimeOffset с помощью пользовательской строки форматирования для нескольких различных языков и региональных параметров.

C#
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

Комментарии

Параметр format должен содержать один символ описатель формата (см. строки стандартного формата даты и времени) или настраиваемый шаблон формата (см. настраиваемые строки формата даты и времени). Если format является пустой или пустой строкой (""), объект DateTimeOffset выводится с помощью формата по умолчанию.

В следующей таблице показана точная операция определенных описателей формата при использовании с DateTimeOffset, которая отличается от их поведения при использовании с DateTime.

Существующий описатель формата Новое поведение
"K" Предназначен для обхода даты и времени. С DateTimeOffsetсопоставляется с "zzz" (смещение всегда отображается с часами и минутами). Обратите внимание, что "K" — это настраиваемый описатель формата; Он не может отображаться как один символ в format.
"U" Не поддерживается.
"r" Преобразует объект DateTimeOffset в формат UTC и выводит его с помощью строки пользовательского формата ddd, dd MMM yyyy HH:mm:ss GMT.
"u" Преобразует значение DateTimeOffset в формате UTC и выводит его с помощью формата yyyy-MM-dd HH:mm:ssZ.

Оставшиеся стандартные описатели формата даты и времени ведут себя одинаково с методом ToString(String), как и с методом ToString.

Шаблон, соответствующий описателям стандартного формата, а также символам и именам компонентов даты и времени, определяется параметром formatProvider. Параметр formatProvider может быть следующим:

  • Объект CultureInfo, представляющий язык и региональные параметры, форматирование которых используется в input. Объект DateTimeFormatInfo, возвращаемый свойством CultureInfo.DateTimeFormat, определяет форматирование, используемое в input.

  • Объект DateTimeFormatInfo, определяющий формат данных даты и времени.

Если formatProvidernull, используется объект DateTimeFormatInfo, связанный с текущим языком и региональными параметрами (см. CurrentCulture).

Примечания для тех, кто вызывает этот метод

Метод ToString(String, IFormatProvider) возвращает строковое представление даты и времени в календаре, используемого параметром formatProvider. Его календарь определяется свойством Calendar. Если значение текущего экземпляра DateTimeOffset раньше MinSupportedDateTime или более поздней, чем MaxSupportedDateTime, метод создает ArgumentOutOfRangeException. В следующем примере показана иллюстрация. Он пытается отформатировать дату, которая находится за пределами диапазона класса UmAlQuraCalendar.

C#
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

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0